edo*_*aur 1 python subprocess multiprocessing
对于 Linux 系统,我正在用 Python 编写一个程序,它会生成子进程。我正在使用“多处理”库,我想知道是否有一种方法可以使用与当前用户不同的用户调用子流程。我希望能够使用不同的用户运行每个子进程(例如 Postfix)。
有什么想法或指示吗?
修改了python文档示例,我在要调用的函数中添加了setuid,我不确定它是否适合您的需求,您可能还需要setgid,sedeuid setegid
from multiprocessing import Process
import os
def info(title):
print title
print 'module name:', __name__
print 'parent process:', os.getppid()
print 'process id:', os.getpid()
def f(name):
os.setuid(1000)
info('function f')
print 'hello', name
os.system('id')
if __name__ == '__main__':
info('main line')
p = Process(target=f, args=('bob',))
p.start()
p.join()
Run Code Online (Sandbox Code Playgroud)