J'utilise la dernière version arrivée pour Ubuntu 10.4 LTS. upstart est lancé avec le drapeau du noyau --debug.
Je fais une configuration de travail personnalisée pour le démon nzbget. Fondamentalement, ce travail a un script de pré-démarrage qui monte un système de fichiers, un script de post-démarrage qui démonte le système de fichiers et une exec nzbget -D
ligne.
Le problème est que le démon nzbget doit s'exécuter en tant qu'utilisateur non privilégié. Cette fonctionnalité est déjà incluse dans nzbget. En effet, lorsque j'exécute à partir de la console, sudo nzbget -D
le processus s'exécute en tant qu'utilisateur non privilégié. Mais lorsque je démarre le travail parvenu avec la exec nzbget -D
ligne, le processus nzbget -D s'exécute en tant que root. Comme dit dans le livre de recettes parvenu, j'ai essayé d'utiliser l'utilisateur su -c "nzbget -D" et aussi le démon start-stop-sans la strophe attendue comme conseillé. Mais pour les deux commandes, comme upstart suit le mauvais PID, je suppose, il voit le processus principal comme tué (en raison des journaux upstart) à la fin du processus de démarrage et donc, il lance le script de post-processus dont je ne veux pas.
=> Comment puis-je le faire correctement? Comment se fait-il que la exec nzbget -D
commande upstart fasse fonctionner le processus en tant que root alors que la sudo nzbget -D
commande le fait fonctionner en tant qu'utilisateur non privilégié?
Je suggère d'utiliser sudo avec la syntaxe suivante:
cela exécute la commande foocommand en tant qu'utilisateur foouser.
la source