Python进程的守护进程实施方案的详细介绍

开发 后端
Python进程在实际操作的过程中,如果你有很多的相关问题不能得到好的解答,你可以通过以下的文章对其有相关的了解。

Python进程这一计算机语言在实际的应用中,如果你在实际应用的过程中遇到相关问题,你就可以通过以下的文章对其的实际应用有较为详细的介绍,以下是文章的具体介绍,希望你会有所收获。

Python进程

更多相关推荐 守护进程:通常被定义为一个后台进程,而且它不属于任何一个终端会话(terminal session)。许多系统服务由守护程序实施;如网络服务,打印等。 下面是转自一位网友写的编写守护进程的步骤:

1. 调用fork()以便父进程可以退出,Python进程这样就将控制权归还给运行你程序的 命令行或shell程序。需要这一步以便保证新进程不是一个进程组头领进程(process group leader)。下一步,‘setsid()’,会因为你是进程组头领进程而失败。

 2. 调用‘setsid()’ 以便成为一个进程组和会话组的头领进程。由于一个控制终端 与一个会话相关联,而且这个新会话还没有获得一个控制终端,我们的进程没 有控制终端,这对于守护程序来说是一件好事。#t#

 3. 再次调用‘fork()’所以父进程(会话组头领进程)可以退出。这意味着我们,一 个非会话组头领进程永远不能重新获得控制终端。

 4. 调用‘chdir("/")’确认我们的进程不保持任何目录于使用状态。不做这个会导 致系统管理员不能卸装(umount)一个文件系统,因为它是我们的当前工作目录。 [类似的,我们可以改变当前目录至对于守护程序运行重要的文件所在目录]

5. 调用‘umask(0)’以便我们拥有对于我们写的任何东西的完全控制。我们不知 道我们继承了什么样的umask。 [这一步是可选的](译者注:这里指步骤5,因为守护程序不一定需要写文件)

 6. 调用‘close()’关闭文件描述符0,1和2。这样我们释放了从父进程继承的标 准输入,标准输出,和标准错误输出。我们没办法知道这些Python进程文描述符符可能 已经被重定向去哪里。注意到许多守护程序使用‘sysconf()’来确认 ‘_SC_OPEN_MAX’的限制。‘_SC_OPEN_MAX’告诉你每个进程能够打 开的最多文件数。

然后使用一个循环,守护程序可以关闭所有可能的文件描 述符。你必须决定你需要做这个或不做。如果你认为有可能有打开的文件描 述符,你需要关闭它们,因为系统有一个同时打开文件数的限制。

7. 为标准输入,标准输出和标准错误输出建立新的文件描述符。即使你不打算,使用它们,打开着它们不失为一个好主意。准确操作这些描述符是基于各自 爱好;比如说,如果你有一个日志文件,你可能希望把它作为标准输出和标 准错误输出打开,而把‘/dev/null’作为标准输入打开;

作为替代方法,你可 以将‘/dev/console’作为标准错误输出和/或标准输出打开‘/dev/null’作
为标准输入,或者任何其Python进程对你的守护程序有意义的结合方法。

责任编辑:佚名 来源: Ubuntu
相关推荐

2010-06-28 14:52:30

cron进程

2013-01-15 15:18:46

Linux守护进程

2012-10-17 14:17:21

SAN网络布线

2009-12-31 09:19:19

2011-03-29 12:45:07

Zabbix进程

2011-06-22 17:09:50

QT 进程 通信

2017-04-11 16:00:40

Linuxsyslog进程

2010-06-11 16:57:37

Linux 查看进程

2009-10-22 12:58:45

校园综合布线系统

2019-10-15 09:31:31

架构运维技术

2010-03-02 16:37:53

Linux Quagg

2010-06-04 14:31:59

Linux 查看进程

2017-01-13 15:39:29

Linux进程基础介绍

2010-03-25 16:51:12

Python程序

2009-11-24 11:35:59

2010-07-15 15:54:10

Perl守护进程

2010-04-13 09:29:54

Oracle SMON

2010-03-31 14:36:50

Oracle进程结构

2011-06-07 14:15:01

jQuery

2013-08-22 09:12:12

点赞
收藏

51CTO技术栈公众号