diff --git a/logstash-core/src/main/java/org/logstash/Logstash.java b/logstash-core/src/main/java/org/logstash/Logstash.java index 94c25d3f40..e24d9b6491 100644 --- a/logstash-core/src/main/java/org/logstash/Logstash.java +++ b/logstash-core/src/main/java/org/logstash/Logstash.java @@ -117,7 +117,9 @@ public static void main(final String... args) { private static void installGlobalUncaughtExceptionHandler() { Thread.setDefaultUncaughtExceptionHandler((thread, e) -> { - if (e instanceof Error) { + if (e instanceof org.jruby.exceptions.SystemExit) { + halt(1); + } else if (e instanceof Error) { handleFatalError("uncaught error (in thread " + thread.getName() + ")", e); } else { LOGGER.error("uncaught exception (in thread " + thread.getName() + ")", e);