According to LSB Core para 20.2:
Otherwise, the exit status shall be nonzero, as defined below.
In addition to straightforward success, the following situations are
also to be considered successful:
• restarting a service (instead of reloading it) with the forcereload argument
• running start on a service already running
• running stop on a service already stopped or not running
• running restart on a service already stopped or not running
• running tryrestart on a service already stopped or not running
Yet, zkServer.sh fails on stop if it can't find a PID file:
echo -n "Stopping zookeeper ... "
if [ ! -f "$ZOOPIDFILE" ]
echo "error: could not find file $ZOOPIDFILE"
$KILL -9 $(cat "$ZOOPIDFILE")