Skip to content

Commit f085ffa

Browse files
committed
auto-restart server on crash
1 parent 1b0eeeb commit f085ffa

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

run.sh

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,25 @@ mkdir -p data/blocklyXML/projects
2929

3030
mkdir -p log
3131

32-
codeworld-game-server +RTS -T &
33-
run . codeworld-server -p 8080 --no-access-log
32+
# Run a server in a loop, restarting on crash
33+
run_server() {
34+
local name=$1
35+
shift
36+
while true; do
37+
echo "$(date): Starting $name" >> log/server-restarts.log
38+
"$@"
39+
exit_code=$?
40+
echo "$(date): $name exited with code $exit_code" >> log/server-restarts.log
41+
42+
# Exit codes: 0=clean, 137=SIGKILL (from fuser -k), 143=SIGTERM
43+
# Only restart on unexpected crashes (like 139=SIGSEGV)
44+
if [ $exit_code -eq 0 ] || [ $exit_code -eq 137 ] || [ $exit_code -eq 143 ]; then
45+
break
46+
fi
47+
48+
sleep 2
49+
done
50+
}
51+
52+
run_server codeworld-game-server codeworld-game-server +RTS -T &
53+
run_server codeworld-server codeworld-server -p 8080 --no-access-log

0 commit comments

Comments
 (0)