[systemd-devel] Cannot make java exit 0 on SIGTERM
chris at edesix.com
Mon Nov 28 07:12:13 PST 2011
I'm running a Java JVM service using:
ExecStart=/usr/bin/java -jar foo.jar
When I stop the service with systemctl, it goes into the failed state
because the JVM exits with status 143 instead of 0.
There doesn't seem to be any way to get a JVM to exit(0) on SIGTERM. You
can run code on the signal with Runtime.addShutdownHook(), but you
cannot call Runtime.exit(0) from within a shutdown hook, so you cannot
influence the exit status.
Is there any way to get systemd to treat the 143 exit status as normal
termination if it sent a SIGTERM? I'd rather not write a signal catching
C or shell-script wrapper around the JVM as I'll probably introduce a
race condition or other error.
More information about the systemd-devel