Como usar o recurso UPSTART do Ubuntu para reiniciar o script python, mas não como root?

0

Estou executando meu script Python usando o recurso upstart do Ubuntu para que, se por qualquer motivo meu script Python morrer ou for morto, ele possa ser reiniciado automaticamente e tudo esteja funcionando bem -

Então eu decidi usar o recurso UPSTART do Ubuntu para reiniciar o script Python automaticamente.

Depois de criar o arquivo testing.conf como este em /etc/init/testing.conf -

start on runlevel [2345]
stop on runlevel [016]

chdir /tekooz
respawn

post-stop script
  sleep 30
end script

exec python testing.py

Corri abaixo do comando sudo para iniciá-lo e vejo esse processo sendo executado usando ps ax e meu script python também está funcionando bem. E quando eu verifico o pid do processo acima, eu sempre vejo que ele está rodando como root. Eu não quero rodar isso como root. Em vez disso, quero executar isso como deds account

deds@bx13:/$ sudo start testing
testing start/running, process 3635
deds@bx13:/$ ps aux | grep testing
root      3635  2.4  0.1 364136 15660 ?        Ssl  12:24   0:00 python testing.py

Existe algum outro lugar onde eu preciso colocar o arquivo testing.conf e depois executá-lo com algum outro comando?

Eu não quero começar meu script python fazendo sudo como sudo start testing e também não quero começar como root, eu só quero começar como deds account. Existe alguma outra maneira de fazer isso?

    
por arsenal 09.04.2014 / 23:58

1 resposta

1

Você tem duas opções. Se sua versão upstart (use o comando initctl --version ) for pelo menos 1.4, adicione as seguintes linhas ao seu arquivo testing.conf:

setuid deds
setgid deds

caso contrário, altere sua linha exec para:

exec sudo -u deds python testing.py
    
por 03.06.2014 / 04:41