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

1

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?

ATUALIZAÇÃO: -

Algo parecido com isto -

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

chdir /tekooz
respawn

post-stop script
  sleep 30
end script

setuid deds

exec python testing.py
    
por arsenal 07.04.2014 / 21:28

1 resposta

1

Você pode usar o setuid .

  

6,31 setuid

     

Adicionado no Upstart v1.4

     

Sintaxe:

setuid <username> 
     

Altera para o usuário antes de executar o processo do trabalho.

(e setgid se você quiser um grupo).

Você também pode adicionar -u <username> a exec .

    
por Rinzwind 07.04.2014 / 21:40