Estou usando a última versão inicial do ubuntu 10.4 LTS. O upstart é lançado com o sinalizador --debug kernel.
Estou fazendo uma configuração de trabalho personalizada para o daemon nzbget. Basicamente, este trabalho possui um script de pré-inicialização que monta um sistema de arquivos, um script de pós-inicialização que desmonta o sistema de arquivos e uma exec nzbget -D
linha.
O problema é que o daemon nzbget precisa ser executado como um usuário não privilegiado. Esse recurso já está incluído no nzbget. De fato, quando eu corro do console, sudo nzbget -D
o processo é executado como um usuário não privilegiado. Mas quando inicio o trabalho inicial com a exec nzbget -D
linha, o processo nzbget -D é executado como raiz. Como dito no livro de receitas inicial, tentei usar o usuário su -c "nzbget -D" e também iniciar-parar-daemon, ambos sem a estrofe de expectativa, conforme recomendado. Mas para ambos os comandos, como o upstart rastreia o PID errado, eu acho, ele vê o processo principal como morto (devido a logs iniciais) no final do processo de inicialização e, portanto, lança o script pós-processo que eu não quero.
=> Como posso fazer certo? Como é que exec nzbget -D
o comando upstart faz com que o processo seja executado como root, enquanto o sudo nzbget -D
comando faz com que seja executado como usuário não privilegiado?
Sugiro usar o sudo com a seguinte sintaxe:
isso executa o comando foocommand como usuário foouser.
fonte