我想守护一个python进程,现在想要问一个守护进程是否运行好,如父进程并调用另一个打开10-30个线程的类。
我打算为服务器组编写监控脚本,并希望每隔5分钟检查一次服务器,每个服务器都要检查5分钟。
我想这样(有点说话,ps auxf样式输出):
|monitor-daemon.py
\-check-server.py
\-check-server.py
....
谢谢!
答案 0 :(得分:8)
答案 1 :(得分:1)
您可以使用supervisord。您可以配置任务以响应事件。事件可以手动创建,也可以通过监控流程或定期间隔自动创建。
它完全可以自定义并用Python编写。
示例:
[program:your_daemon_name]
command=your_daemon_process
# Add extra options here according to the manual...
[eventlistener:your_monitor_name]
command=your_monitor_process
events=PROCESS_STATE_RUNNING # Will be triggered after a program changes from starting to running
# Add extra options here according to the manual...
或者,如果您希望eventlistener响应流程输出,请每分钟使用事件PROCESS_COMMUNICATION_STDOUT
或TICK_60
进行检查。可以将日志重定向到文件等,这样您就可以随时查看状态。
答案 2 :(得分:-1)
创建自己的daemonize
函数真的不多:Unix环境(第2版)中高级编程的源代码是免费提供的:http://www.apuebook.com/src.tar.gz - 您正在寻找small helper program 1}}文件。
有一个{{3}}可以完成创建一个合适的守护进程的所有工作,它可以用来包装任意程序;这可能会省去一些麻烦。