Sto usando l'ultima versione di avvio per Ubuntu 10.4 LTS. upstart viene lanciato con --debug kernel flag.
Sto creando una configurazione di lavoro personalizzata per il demone nzbget. Fondamentalmente, questo lavoro ha uno script pre-avvio che monta un filesystem, uno script post-avvio che smonta il file system e una exec nzbget -D
linea.
Il problema è che il demone nzbget deve essere eseguito come utente non autorizzato. Questa funzione è già inclusa in nzbget. In effetti, quando corro dalla console, sudo nzbget -D
il processo viene eseguito come utente non privilegiato. Ma quando inizio il processo di avvio con la exec nzbget -D
linea, il processo nzbget -D viene eseguito come root. Come detto nel ricettario upstart, ho provato ad usare su -c "nzbget -D" utente e anche start-stop-daemon entrambi senza la strofa attesa come consigliato. Ma per entrambi i comandi, poiché upstart tiene traccia del PID errato, immagino, vede il processo principale come ucciso (a causa dei registri upstart) alla fine del processo di avvio e quindi avvia lo script post-process che non voglio.
=> Come posso farlo bene? In che modo il exec nzbget -D
comando upstart fa funzionare il processo come root mentre il sudo nzbget -D
comando lo fa funzionare come utente non autorizzato?