From e1250ac4fa40453450030a84a7fafd51a3e1ae70 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Mon, 15 Jun 2026 17:08:54 +0200 Subject: [PATCH] various services: exit with non-zero exit code on failure This enables various systems, for example systemd, to see that the service didn't exit normally. This makes systemd's `Restart=on-failure` feature work more reliably. --- .../org/phoebus/alarm/logging/AlarmConfigLoggingService.java | 2 +- .../phoebus/applications/alarm/aggregate/AggregateTopics.java | 1 + .../org/phoebus/applications/alarm/server/AlarmServerMain.java | 3 ++- .../src/main/java/org/csstudio/archive/Engine.java | 2 +- .../main/java/org/csstudio/scan/server/ScanServerInstance.java | 3 ++- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/services/alarm-config-logger/src/main/java/org/phoebus/alarm/logging/AlarmConfigLoggingService.java b/services/alarm-config-logger/src/main/java/org/phoebus/alarm/logging/AlarmConfigLoggingService.java index 9650321c5f..8ca41d1e95 100644 --- a/services/alarm-config-logger/src/main/java/org/phoebus/alarm/logging/AlarmConfigLoggingService.java +++ b/services/alarm-config-logger/src/main/java/org/phoebus/alarm/logging/AlarmConfigLoggingService.java @@ -152,7 +152,7 @@ public static void main(String[] original_args) throws InterruptedException { ex.printStackTrace(); System.out.println("\n>>>> Please check available arguments of alarm-config-logger as follows:"); help(); - return; + System.exit(-1); } logger.info("Alarm Logging Service (PID " + ProcessHandle.current().pid() + ")"); diff --git a/services/alarm-server/src/main/java/org/phoebus/applications/alarm/aggregate/AggregateTopics.java b/services/alarm-server/src/main/java/org/phoebus/applications/alarm/aggregate/AggregateTopics.java index 9f8aa5237b..5bfa91765d 100644 --- a/services/alarm-server/src/main/java/org/phoebus/applications/alarm/aggregate/AggregateTopics.java +++ b/services/alarm-server/src/main/java/org/phoebus/applications/alarm/aggregate/AggregateTopics.java @@ -72,6 +72,7 @@ private AggregateTopics(String[] args) } catch (IOException ex) { logger.log(Level.WARNING, "Reading input from stdin failed.", ex); + System.exit(-1); } // Exit the program. The shutdown hook will clean up the stream. diff --git a/services/alarm-server/src/main/java/org/phoebus/applications/alarm/server/AlarmServerMain.java b/services/alarm-server/src/main/java/org/phoebus/applications/alarm/server/AlarmServerMain.java index 0de566582a..e1572efbeb 100644 --- a/services/alarm-server/src/main/java/org/phoebus/applications/alarm/server/AlarmServerMain.java +++ b/services/alarm-server/src/main/java/org/phoebus/applications/alarm/server/AlarmServerMain.java @@ -121,6 +121,7 @@ private AlarmServerMain(final String server, final String config, final boolean } } catch (final Throwable ex) { logger.log(Level.SEVERE, "Alarm Server main loop error", ex); + System.exit(-1); } logger.info("Done."); @@ -613,7 +614,7 @@ public static void main(final String[] original_args) throws Exception { help(); System.out.println(); ex.printStackTrace(); - return; + System.exit(-1); } logger.info("Alarm Server (PID " + ProcessHandle.current().pid() + ")"); diff --git a/services/archive-engine/src/main/java/org/csstudio/archive/Engine.java b/services/archive-engine/src/main/java/org/csstudio/archive/Engine.java index bff06fd400..291ff59422 100644 --- a/services/archive-engine/src/main/java/org/csstudio/archive/Engine.java +++ b/services/archive-engine/src/main/java/org/csstudio/archive/Engine.java @@ -390,7 +390,7 @@ else if (cmd.equals("-steal_channels")) catch (Exception ex) { logger.log(Level.SEVERE, "Cannot start", ex); - run = false; + System.exit(-1); } httpd.shutdown(); } diff --git a/services/scan-server/src/main/java/org/csstudio/scan/server/ScanServerInstance.java b/services/scan-server/src/main/java/org/csstudio/scan/server/ScanServerInstance.java index 3757099c27..49e1100e45 100644 --- a/services/scan-server/src/main/java/org/csstudio/scan/server/ScanServerInstance.java +++ b/services/scan-server/src/main/java/org/csstudio/scan/server/ScanServerInstance.java @@ -246,7 +246,7 @@ else if (cmd.equals("-noshell")) help(); System.out.println(); ex.printStackTrace(); - return; + System.exit(-1); } logger.info("Scan Server (PID " + ProcessHandle.current().pid() + ")"); @@ -283,6 +283,7 @@ else if (cmd.equals("-noshell")) catch (Exception ex) { logger.log(Level.SEVERE, "Cannot start", ex); + System.exit(-1); } httpd.shutdown();