我该如何设置正在生成的进程的umask?

3

我有一个Python REST API服务。这个服务会使用一些脚本进行内部执行,

subprocess.Popen(cmd, shell=False, preexec_fn=os.setpgrp, env=self.env, universal_newlines=True,stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)

现在我希望设置生成的进程的umask。我尝试在运行此服务的init脚本中设置umask。但是看起来这个子进程没有继承它。如果这有所不同,我正在尝试在RHEL上完成这项任务。谢谢!

1个回答

5

既然您似乎已经成功使用了preexec_fn参数,那么您也可以使用它来调用os.umask()

def initchildproc():
    os.setpgrp()
    os.umask(400)

subprocess.Popen(cmd, shell=False, preexec_fn=initchildproc, ...)

谢谢,我在发帖后就找到了那个解决方案! - hyperlink

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接