From e2cbc921daad3e852f4b135130e09532ef8ea773 Mon Sep 17 00:00:00 2001 From: Dexuan Ren <81537377+KenRen98@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:53:11 -0500 Subject: [PATCH] added helper to help cave exit gracefully --- .../dont_starve/cave_helper.sh | 18 ++++++++++++++++++ .../dont_starve/supervisord.conf | 7 +++++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 game_eggs/steamcmd_servers/dont_starve/cave_helper.sh diff --git a/game_eggs/steamcmd_servers/dont_starve/cave_helper.sh b/game_eggs/steamcmd_servers/dont_starve/cave_helper.sh new file mode 100644 index 00000000..2be0f2e0 --- /dev/null +++ b/game_eggs/steamcmd_servers/dont_starve/cave_helper.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# Signal handler function +handle_signal() { + echo "Signal received, executing c_shutdown()" + c_shutdown +} + +# Trap TERM and INT signals and call handle_signal when they are received +trap handle_signal TERM INT + +# Start your server process here (run in the background if necessary) +./dontstarve_dedicated_server_nullrenderer_x64 -bind_ip 0.0.0.0 -port 11000 -persistent_storage_root /home/container/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Caves & + +# Wait for server process to exit +wait $! + +echo "Server process exited, script ending" diff --git a/game_eggs/steamcmd_servers/dont_starve/supervisord.conf b/game_eggs/steamcmd_servers/dont_starve/supervisord.conf index c86d8d8e..f29a0ff3 100644 --- a/game_eggs/steamcmd_servers/dont_starve/supervisord.conf +++ b/game_eggs/steamcmd_servers/dont_starve/supervisord.conf @@ -1,5 +1,7 @@ [supervisord] nodaemon=true +logfile=./Supervisord/supervisord.log +pidfile=./Supervisord/supervisord.pid [supervisorctl] @@ -10,7 +12,7 @@ port = 127.0.0.1:9001 supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [program:caves] -command=/bin/sh -c './dontstarve_dedicated_server_nullrenderer_x64 -bind_ip 0.0.0.0 -port 11000 -persistent_storage_root /home/container/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Caves' +command=/bin/sh -c './cave_helper.sh' autostart=true autorestart=false redirect_stderr=true @@ -18,6 +20,7 @@ stdout_logfile=/home/container/DoNotStarveTogether/config/server/Caves/server_lo directory=/home/container/bin64 depends_on=master stopsignal=TERM +stopwaitsecs=60 [program:master] command=/bin/sh -c './dontstarve_dedicated_server_nullrenderer_x64 -bind_ip 0.0.0.0 -port {{SERVER_PORT}} -persistent_storage_root /home/container/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Master' @@ -25,4 +28,4 @@ autostart=true autorestart=false redirect_stderr=true stdout_logfile=/home/container/DoNotStarveTogether/config/server/Master/server_log.txt -directory=/home/container/bin64 \ No newline at end of file +directory=/home/container/bin64