将pidfile放在某个地方(例如/
tmp)。然后,您可以通过检查文件中的PID是否存在来检查进程是否正在运行。干净关闭文件时,不要忘记删除文件,启动时请检查文件。
#/usr/bin/env pythonimport osimport syspid = str(os.getpid())pidfile = "/tmp/mydaemon.pid"if os.path.isfile(pidfile): print "%s already exists, exiting" % pidfile sys.exit()file(pidfile, 'w').write(pid)try: # Do some actual work herefinally: os.unlink(pidfile)
然后,您可以通过检查/tmp/mydaemon.pid的内容是否为现有进程来查看该进程是否正在运行。Monit(如上所述)可以为您完成此操作,或者您可以编写一个简单的Shell脚本使用ps的返回代码为您检查它。
ps up `cat /tmp/mydaemon.pid ` >/dev/null && echo "Running" || echo "Not running"
为了获得更多的荣誉,您可以使用atexit模块来确保您的程序在任何情况下(被杀死,引发异常等)都清理其pidfile。



