您的位置:首页 > 编程语言 > Python开发

[Python]daemon后台守护进程

2014-03-13 17:33 441 查看
记录一下以前不知道的知识:
1. os.umask(0022)

权限掩码umask::umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)+写(2)+执行(1),同组的和其它用户有读写权限)
umask的作用:默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认 权限是755(7-0,7-2,7-2),可以用ls -l验证一下哦 现在应该知道umask的用途了吧,它是为了控制默认权限,不要使默认的文件和目录具有全权而设的
修改umask值:知道了umask的作用后,你可以修改umask的值了,例如:os.umask(0024)则以后建立的文件和目录的默认权限就为642,753了
特别地,用os.umask(0)来修改文件模式,让进程有最大权限,保证进程有读写执行权限,这个不是一个好的方法

2. os.setsid()

该方法做一系列的事:首先它使得该进程成为一个新会话的领导者,接下来它将进程转变一个新进程组的领导者,最后该进程不再控制终端, 运行的时候,建立一个进程,linux会分配个进程号。然后调用os.fork()创建子进程。若pid>0就是自己,自杀。子进程跳过if语句,通过os.setsid()成为linux中的独立于终端的进程(不响应sigint,sighup等)。

3. os.dup2(si.fileno(), sys.stdin.fileno())

参见另外一篇有关文件描述符与重定向的文章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: