On beta cluster deployment-jobrunner02.deployment-prep.eqiad.wmflabs, whenever one stops jobrunner or jobchron the service is reported as failed in systemd:
# systemctl stop jobchron
# systemctl status jobchron ● jobchron.service - "Mediawiki job queue chron loop" Loaded: loaded (/lib/systemd/system/jobchron.service; enabled) vvvvvv Active: failed (Result: exit-code) since Fri 2017-06-16 09:27:07 UTC; 1s ago ^^^^^^ Process: 29240 ExecStart=/usr/bin/php /srv/deployment/jobrunner/jobrunner/redisJobChronService --config-file=${JOBRUNNER_CONFIG} ${DAEMON_OPTS} (code=exited, status=143) vvv Main PID: 29240 (code=exited, status=143) ^^^
The reason is that both redisJobChronService and redisJobRunnerService catch signals HUP, INT, TERM and exit() with 128 + <signal number>.
We can make systemd to recognizes a non zero exit is valid by using SuccessExitStatus.