Hello, I noticed script zkServer.sh stops zookeeper by sending the java process a `kill -9` (SIGKILL). Is there any technical reason to use such a radical signal rather than SIGTERM (-15) for instance?
I am wondering this because I am working on Systemd service files for Zookeeper [0] [1] and this `-9` actually makes Systemd consider the Zookeeper java process fails when stop is called as shown by the following Systemd log: ---------------8<--------------- # sudo systemctl status zookeeper.service ● zookeeper.service - Highly reliable distributed coordination server Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; disabled) Active: failed (Result: signal) since Wed 2014-11-05 11:23:29 CET; 2s ago Process: 656 ExecStop=/usr/bin/zkServer.sh stop (code=exited, status=0/SUCCESS) Process: 406 ExecStart=/usr/bin/zkServer.sh start (code=exited, status=0/SUCCESS) Main PID: 414 (code=killed, signal=KILL) Nov 05 11:23:29 magenta zookeeper[656]: Stopping zookeeper ... STOPPED Nov 05 11:23:29 magenta systemd[1]: zookeeper.service: main process exited, code=killed, status=9/KILL Nov 05 11:23:29 magenta systemd[1]: Unit zookeeper.service entered failed state. ---------------8<--------------- There is no way to make this `status=9/KILL` to be recognized by Systemd as a regular exit code, even with `SuccessExitStatus=9 KILL SIGKILL`. On the other hand, turning this `kill -9` into a regular `kill` (-15 implied) makes it: ---------------8<--------------- # sudo systemctl status zookeeper.service ● zookeeper.service - Highly reliable distributed coordination server Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; disabled) Active: inactive (dead) Nov 05 11:14:27 magenta zookeeper[30032]: Using config: /usr/share/zookeeper/bin/../conf/zoo.cfg Nov 05 11:14:27 magenta zookeeper[30032]: Stopping zookeeper ... STOPPED ---------------8<--------------- I would gladly submit a tiny patch for this (and maybe also submit the service file) but would first like to have your opinion on the reasons to use SIGKILL. [0] https://github.com/galaux/aurpkgs/blob/master/zookeeper/systemd_zookeeper.service [1] https://github.com/galaux/aurpkgs/blob/master/zookeeper/systemd_zookeeper%40.service -- Guillaume
