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

mokasin mok4sin at googlemail.com
Thu Feb 16 13:53:56 PST 2012

On 15.12.2011 16:56, Lennart Poettering wrote:
> On Mon, 28.11.11 15:12, Chris Paulson-Ellis (chris at edesix.com) wrote:
>> 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.
> Use ExecStart=-/usr/bin/java... (i.e. add the - in there, to ignore
> failure exit codes)
> Lennart

It seems also to ignore an exit code due to an error.

If the service failed to start for an actual reason, wouldn't systemd
fail to recognize it?

More information about the systemd-devel mailing list