1.python检测linux下进程的运行#coding=utf8
import sys,os
status_ok = 0
status_critical = 2
def check(Pid):
dir,file = os.path.split(Pid)
if not(os.path.exists(Pid)):
print 'Critical - %s is stop.' % file
sys.exit(status_critical)
else:
print 'OK - %s is running.' % file
sys.exit(status_ok)
if __name__ == '__main__':
#pid = "/var/run/sshd.pid"
pid = sys.argv[1]
check(pid)
运行:python check_daemon.py /var/run/sshd.pid
2.shell检测linux进程运行#!/bin/sh
daemon=$1
status_ok=0
status_critical=2
pid=`ps -ef | grep -v grep | grep -v $0| grep $daemon| sed -n '1P'|awk '{print $2}'`
if [ -z $pid ]; then
echo "Critical - $daemon is stop."
exit $status_critical
else
echo "OK - $daemon is running."
exit $status_ok
fi
sh check_daemon.sh sshd
3.linux一般用init管理进程,不过有一个用python写的模块(supervisor)也能很优秀的管理进程,而且可以管理任意运行脚本。