Używam ostatniej wersji upstart dla Ubuntu 10.4 LTS. upstart jest uruchamiany z flagą jądra --debug.
Tworzę niestandardową konfigurację zadania dla demona nzbget. Zasadniczo to zadanie ma skrypt przed uruchomieniem, który montuje system plików, skrypt po uruchomieniu, który odmontowuje system plików i exec nzbget -D
linię.
Problem polega na tym, że demon nzbget musi działać jako użytkownik nieuprzywilejowany. Ta funkcja jest już zawarta w nzbget. Rzeczywiście, kiedy uruchamiam z konsoli, sudo nzbget -D
proces działa jako użytkownik nieuprzywilejowany. Ale kiedy zaczynam zadanie upstart z exec nzbget -D
linią, proces nzbget -D działa jako root. Jak powiedziano w podręcznej książce kucharskiej, próbowałem użyć użytkownika su -c „nzbget -D”, a także demona start-stop-demona bez oczekiwanej zwrotki zgodnie z zaleceniami. Ale w przypadku obu poleceń, gdy upstart śledzi niewłaściwy PID, wydaje się, że widzi główny proces jako zabity (z powodu logów upstart) na końcu procesu uruchamiania, a zatem uruchamia skrypt postprocesowy, którego nie chcę.
=> Jak mogę to zrobić dobrze? Jak to się exec nzbget -D
dzieje, że polecenie upstart powoduje, że proces działa jako root, a sudo nzbget -D
polecenie uruchamia go jako użytkownik nieuprzywilejowany?