python-daemon,python daemon模块

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: