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.
- Rivet sends a
SIGTERM
asking the server to shut down gracefully. Your server should exit as soon as possible after receiving this signal. - 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
Unity
MonoBehaviour.OnApplicationQuit()
Node.js
process.on('SIGTERM', () => {
console.log('Exiting')
process.exit(1);
});
Other
Rosetta Code has a collection of examples on handling Unix signals here.