우분투 10.4 LTS에 최신 시작 버전을 사용하고 있습니다. upstart는 --debug kernel 플래그와 함께 시작됩니다.
nzbget 데몬에 대한 사용자 정의 작업 구성을 만들고 있습니다. 기본적으로이 작업에는 파일 시스템을 마운트하는 시작 전 스크립트, 파일 시스템을 마운트 해제하는 시작 후 스크립트 및 exec nzbget -D
행이 있습니다.
문제는 nzbget 데몬이 권한이없는 사용자로 실행되어야한다는 것입니다. 이 기능은 이미 nzbget에 포함되어 있습니다. 실제로 콘솔 sudo nzbget -D
에서 실행할 때 프로세스는 권한이없는 사용자로 실행됩니다. 그러나 exec nzbget -D
라인으로 upstart 작업을 시작하면 nzbget -D 프로세스가 루트로 실행됩니다. upstart 요리 책에서 말했듯이 su -c "nzbget -D"사용자와 start-stop-daemon을 사용하여 조언 된 스탠자를 기대하지 않았습니다. 그러나 두 명령 모두 upstart가 잘못된 PID를 추적하면 시작 프로세스가 끝날 때 주 프로세스가 종료 된 것으로 간주되므로 원하지 않는 사후 프로세스 스크립트가 시작됩니다.
=> 어떻게하면됩니까? exec nzbget -D
upstart 명령은 프로세스를 루트로 실행하는 반면 sudo nzbget -D
명령은 권한이없는 사용자로 실행되는 방법은 무엇입니까?