2011-12-07 3 views
1

리눅스 시스템의 경우, 나는 자식 프로세스를 생성하는 Python으로 프로그램을 작성하고있다. "다중 처리"라이브러리를 사용하고 현재 사용자가 아닌 다른 사용자와 하위 프로세스를 호출하는 방법이 있는지 궁금합니다. 다른 사용자 (예 : Postfix)와 같은 각 하위 프로세스를 실행할 수 있기를 원합니다.파이썬에서 다른 사용자의 하위 프로세스를 호출하는 방법은 무엇입니까?

아이디어 또는 포인터가 있습니까?

+0

어떤 전화를 setgid를 sedeuid 필요가있다라고하는 기능에 setuid를 추가 한 수정 너 사용하고있어? Popen을 사용하면 preexec_fn = lambda : os.setuid (100) – sherpya

+0

과 같은 것을 사용할 수 있습니다. 다중 처리를 사용합니다. 프로세스 파생물. uid/gid 솔기를 API 부족으로 설정하기. – edomaur

답변

3

파이썬 문서 예, 나는 그것이 여러분의 필요에 맞는 확실하지 않다 당신은 또한, 정확히에 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() 
+0

아 맞아! 감사 ! 나는 너무 복잡한 것을 검색하고 있었고 당신의 모범이 트릭을 멋지게 할 것입니다 : D – edomaur

1

os.setpgid (pid, pgrp) 방향을 살펴볼 수 있습니다.

관련 문제