Graceful Exit

Game servers often need to run code when they are about to shut down. This is called a "graceful exit". This is useful for saving data, cleaning up resources, and notifying players.

Under the hood, Rivet uses Unix signals to notify the game server that it will be shut down soon.

  1. Rivet sends a SIGTERM asking the server to shut down gracefully. Your server should exit as soon as possible after receiving this signal.
  2. If the server does not exit within 30 seconds, Rivet will force the server to shut down.

Examples

Godot

Godot does not natively support this (see #1361). To use GDExtension as a workaround, see here.

Unreal Engine

UEngine::PreExit

Unity

MonoBehaviour.OnApplicationQuit()

Node.js

process.on('SIGTERM', () => {
    console.log('Exiting')
    process.exit(1);
});

Example

Documentation

Other

Rosetta Code has a collection of examples on handling Unix signals here.

Was this page helpful?

Edit Page

Rivet

Open-source multiplayer infrastructure. Easy, flexible, and affordable.

This website is not sponsored by or affiliated with Unity Technologies or its affiliates. Unity Trademark(s) are trademark(s) or registered trademark(s) of Unity Technologies or its affiliates in the U.S. and elsewhere. | This website is not sponsored by, affiliated with, or endorsed by Epic Games, Inc. or its affiliates. 'Unreal Engine' is a trademark or registered trademark of Epic Games, Inc. in the U.S. and elsewhere. | The HTML5 Logo by the World Wide Web Consortium (W3C), used under a Creative Commons Attribution 3.0 License. Source | The Godot Engine Logo by the Andrea Calabró, used under a Creative Commons Attribution 4.0 International License. Source | Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries. Docker, Inc. and other parties may also have trademark rights in other terms used herein.

© 2024 Rivet Gaming, Inc. All rights reserved.