this answer ("쉘 명령어는 파이썬에서 호출하지 마십시오. 쉘 명령어가 할 수있는 모든 것을 파이썬에서 할 수 있습니다."), 많은 사람들에게 흔히있는 조언입니다. 어떻게하면 선택한 개인을 실행할 수 있습니까? routine (그리고 오직이 루틴 만) 다른 사용자, 예를 들어 파이썬 프로그램 내에서. 루트, 파이썬에서 (다소 안전하다) 방식?다른 사용자 (예 : root)로 Python 루틴을 실행하는 파이썬적인 방법은 무엇입니까?
예를 들어, 나는 몇 가지 코드에서 이런 루틴을 가지고 : 나는 뿌리를 할 필요가없는 경우
import os
import signal
import subprocess
def kill_proc(pid, k_signal = signal.SIGINT, sudo = False):
if sudo:
subprocess.Popen(['sudo', 'kill', '-%d' % k_signal, '%d' % pid]).wait()
else:
os.kill(pid, k_signal)
, 난 그냥이 예에서 os.kill(pid, k_signal)
를 호출 할 수 있습니다. 그러나 예제에서 신호를 보내기위한 수퍼 유저 권한이 필요한 경우 서브 프로세스의 명령을 통해 신호를 전송해야합니다. 대신 os.kill
을 어떻게 사용할 수 있습니까?
인용 한 답변은 전면에 과장되어 있습니다. 많은 무게를주지 마십시오. 쉘 명령이란 무엇입니까? 'cp'가 하나라면, 왜'firefox'가 아닌가? –
@ n.m. 나는 overgeneralisation을 알고있다.) 그럼에도 불구하고, 나는 그것에 대한 답이 있는지 없는지에 관심이 있다는 것을 인정해야한다. –