[systemd-devel] Cannot make java exit 0 on SIGTERM

Chris Paulson-Ellis chris at edesix.com
Mon Nov 28 07:12:13 PST 2011


Hi,

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.

Chris.



More information about the systemd-devel mailing list