Python daemonize

时间:2010-08-01 20:59:49

标签: python daemon

我想守护一个python进程,现在想要问一个守护进程是否运行好,如父进程并调用另一个打开10-30个线程的类。

我打算为服务器组编写监控脚本,并希望每隔5分钟检查一次服务器,每个服务器都要检查5分钟。

我想这样(有点说话,ps auxf样式输出):

|monitor-daemon.py
 \-check-server.py
 \-check-server.py

....

谢谢!

3 个答案:

答案 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_STDOUTTICK_60进行检查。可以将日志重定向到文件等,这样您就可以随时查看状态。

答案 2 :(得分:-1)

创建自己的daemonize函数真的不多:Unix环境(第2版)中高级编程的源代码是免费提供的:http://www.apuebook.com/src.tar.gz - 您正在寻找small helper program 1}}文件。

有一个{{3}}可以完成创建一个合适的守护进程的所有工作,它可以用来包装任意程序;这可能会省去一些麻烦。