This local check for check_mk is useful with services who won’t start if an old or incorrect pid file remains. I needed to write it because this is the very case of the postfix version embedded with zimbra.
The code is self-explanatory :
#!/bin/bash # Cyril Pawelko https://www.pawelko.net/check-mk-check_pid/ # Version 1 # Checks if the PID referenced in a PIDFILE exists # This is a "local" check_mk check for *NIX: # - Rename it if you need several checks on the same host # - Copy to check-mk local checks directory (/usr/lib/check_mk_agent/local on Debian) # - Customize with the PID file path: PIDFILE="/opt/zimbra/data/postfix/spool/pid/master.pid" if [ ! -r $PIDFILE ] then echo 3 Pid_$PIDFILE - File $PIDFILE cannot be read exit fi PID=$(cat $PIDFILE ) PID=${PID//[^0-9]/} if ps $PID > /dev/null then echo 0 Pid_$PIDFILE - Process $PID referenced in $PIDFILE is running else echo 2 Pid_$PIDFILE - Process $PID referenced in $PIDFILE does not exist fi
Have fun !