python-daemon,python daemon模块
Python的守护进程管理器-zdaemon-gashero的极客前哨-ITeye技术网站
Python的守护进程管理器-zdaemon由:
日期:
Gashero2009-09-07目录
1简介2命令界面3命令行控制4使用配置文件管理5参考文档1简介经常开发服务器程序,所以一个功能强大的守护进程托管程序非常重要。之前使用的最可靠的方法是twisted自带的twistd。但是如果想让它托管,需要对程序做很多改动,确实不方便。
一般来说,要求是能够启动进入守护模式,并记录所有屏幕打印日志和异常日志。
Zdaemon是ZOPE项目的子项目之一。
项目主页:http://pypi.python.org/pypi/zdaemon
注意:如果安装时没有ez_setup.py这样的东西,安装后就没有zdaemon命令了。
命令界面zdemon的主入口是一个zdemon。
程序。
提供的子命令如下:
开始
:作为守护程序停止启动进程
:停止流程重启
:重启流程状态
:前台查看流程运行状态
或者fg
:运行程序终止信号。
:向守护程序进程reopen _抄本发送信号
:重新打开日志帮助命令。
:显示命令的帮助。3命令行控制前台启动,而-p选项指定要运行的程序:
$ zdaemon -p echo hello world fg
守护程序启动:
$ zdaemon -p“睡眠100”开始
守护进程已启动,pid=819
检查守护程序状态:
$ zdaemon -p“睡眠100”状态
程序运行;pid=819
停止守护程序:
$ zdaemon -p 睡眠100 停止
守护进程已停止
$ zdaemon -p“睡眠100”状态
守护程序管理器没有运行
4使用概要文件管理简历概要文件并指定步骤:
$ cat zd.conf
跑步者
编程睡眠100
/跑步者
$ zdaemon -Czd.conf start
守护进程已启动,pid=1136
$ zdaemon -Czd.conf停止
守护进程已停止
文件zdsock将在当前目录中生成。
,用于zdaemon的内部管理。
配置文件中指定的Sock文件位置:
跑步者
编程睡眠100
套接字名称/tmp/demo.zdsock
/跑步者
您可以通过zdaemon向应用程序传递参数:
$ cat zd.conf
跑步者
程序睡眠
套接字名称/tmp/demo.zdsock
/跑步者
$ zdaemon -Czd.conf start 100
守护进程已启动,pid=1149
在配置文件中传递环境变量:
跑步者
程序环境
套接字名称/tmp/demo.zdsock
/跑步者
环境
LD_LIBRARY_PATH /home/foo/lib
家/家/家
/环境
当daemon运行时,程序的标准输入将被关闭,标准输出和错误输出将被控制,并可选地重定向到标准输出或文件。所有这些都由转录选项控制,这是长时间运行的程序所必需的。
参见示例配置:
跑步者
程序尾部数据
抄本日志
/跑步者
您可以在运行时重命名日志文件,因为zdaemon仍然会打开该文件,所以即使更改了名称,输出也仍然会在该文件中。此时,您可以告诉zdaemon重新打开日志,以便它可以再次输出到最初定义的日志文件:
zdaemon-czd . conf reopen _抄本
5参考文件下列参数可以在配置文件的runner部分或命令行选项中使用:
程序
,命令行-p
/-程序
:该选项给出了需要运行的程序。
套接字名称
,命令行-s
/-套接字名称
:指定Unix套接字路径
守护进程
,命令行-d
/-守护进程
:如果为true,则在后台运行,默认情况下是打开的。子进程将执行以下操作:
If目录
选项存在,切换到那个目录,将stdin,stdout,stderr重定向到/dev/null来调用setsid(),从而调用umask()目录作为会话的主进程。
,命令行-z
/-目录
:指定守护程序运行的目录。
后退限制
,命令行-b
/-回退限制
:当子进程挂起时,zdaemon将在延迟1秒后重新启动它。当子进程再次挂起时,延迟会再增加一秒。当延迟增加到退避极限时,它永远依赖于。
期权的价值。如果永远
真的,zdaemon会放弃退出。经常挂起的子进程将被限制为仅重新启动回退限制次数。如果永远
真,zdaemon将继续尝试重新启动,保持退避限制的时间延迟。如果子进程保持的时间超过回退限制秒,延迟将被重置为1秒。默认值为10。
永远
,命令行-f
或者-永远
:如果为true,则让挂起的子进程一直重新启动;如果为假,则放弃并在退避限制次数后退出。默认为禁用。
退出代码
,命令行-x
或退出代码
:如果子进程的退出代码在列表中,则zdaemon不会重新启动它。默认值为0,2
,分别表示正常结束和命令语法错误。在这种情况下重启是没用的。这种行为使补偿限制过载
直到永远。
选项。要禁用它,您可以将该值设置为空列表。
用户
,命令行-u
或-用户
:用zdaemon启动root时,该选项指定实际运行的用户,参数可以是用户名或用户ID。用户和组都使用正确密码条目中的setuid()
和setgid()
设置。此操作将在zdaemon的所有其他操作之前执行,命令行参数解析除外。请注意,当zdaemon不是以root身份启动时,指定此选项将导致错误。请注意,事件日志将位于setuid()中
打电话之前,这是好是坏?
默认属性
,命令行-m
或者- umask
:使用守护程序时,以八进制指定umask。
默认到交互
,命令行-i
或-交互式
:如果将此选项指定为true,则zdaemon将进入交互模式,而不使用其他命令参数。如果为false,则必须指定命令行参数才能进入交互模式。默认启用。
登录档
:指定“logtail”命令的默认日志文件。注意,这不是zdaemon记录日志信息的日志文件。该日志由eventlog段描述。
副本
:记录复制日志的文件名,将记录该命令的所有输出副本。如果没有指定命令,输出将被丢弃。仅在守护程序选项有效时有效。
提示
:控制程序使用的提示。默认值由应用程序提供。
(注意,其他一些选项只对旧的概要文件有效,但是它们不再需要,将被忽略。)
除了runner段,您还可以使用eventlog段来指定日志文件:
事件日志
登录档
路径/var/log/foo/foo.log
/日志文件
登录档
路径标准输出
/日志文件
/事件日志
在此示例中,日志被发送到文件和标准输出。zdaemon的日志输出通常没什么意思,但是可以用来调试。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。