From 023e46fe6406221d5360c75c296deb2fe24ae198 Mon Sep 17 00:00:00 2001 From: timvisee Date: Mon, 20 Feb 2023 10:31:04 +0100 Subject: [PATCH] Allow exit code 143 and 130 Fixes https://github.com/timvisee/lazymc/issues/26 --- src/server.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/server.rs b/src/server.rs index 8bc259d..b626eae 100644 --- a/src/server.rs +++ b/src/server.rs @@ -29,9 +29,11 @@ const SERVER_QUIT_COOLDOWN: Duration = Duration::from_millis(2500); #[cfg(feature = "rcon")] const RCON_COOLDOWN: Duration = Duration::from_secs(15); -/// Exit code when SIGTERM is received on Unix. -#[cfg(unix)] -const UNIX_EXIT_SIGTERM: i32 = 130; +/// Exit codes that are allowed. +/// +/// - 143: https://github.com/timvisee/lazymc/issues/26#issuecomment-1435670029 +/// - 130: https://unix.stackexchange.com/q/386836/61092 +const ALLOWED_EXIT_CODES: [i32; 2] = [130, 143]; /// Shared server state. #[derive(Debug)] @@ -496,8 +498,12 @@ pub async fn invoke_server_cmd( debug!(target: "lazymc", "Server process stopped successfully ({})", status); false } - #[cfg(unix)] - Ok(status) if status.code() == Some(UNIX_EXIT_SIGTERM) => { + Ok(status) + if status + .code() + .map(|ref code| ALLOWED_EXIT_CODES.contains(code)) + .unwrap_or(false) => + { debug!(target: "lazymc", "Server process stopped successfully by SIGTERM ({})", status); false }