ubuntu upstart script executa um programa script.py

6

Estou criando um script pronto para executar um programa em python que eu escrevi. Quando o serviço está iniciando, quero fazer echo de starting service - script.py... e ecoar o ID do processo do programa, uma vez iniciado.

Da mesma forma, quero ecoar stopping service - script.py... quando estiver sendo interrompido.

Eu tenho isso até agora (lembre-se que eu sou novo nisso) ...

#Name: script.conf
description "An upstart config to run ~/applications/systems/script.py as an OS service."
author "Corey F. - 12/2011"

pre-start script
    echo 'starting service - script.py...'
end script

post-stop script
    echo 'stopped service - script.py...'
end script

start on runlevel [2534]
stop on runlevel [!2534]

exec /home/lv_admin/applications/systems/script.py
respawn

Acho que preciso do comando 2534 status para obter o processid e o último estado conhecido do serviço (conforme explicado aqui: link ), mas não sei onde colocá-lo ...

Além disso, como eu registraria os problemas de evento do upstart em um arquivo específico durante a execução deste arquivo upstart do script.conf? Preciso saber se o upstart tem problemas para iniciar o processo.

    
por sadmicrowave 16.12.2011 / 15:04

1 resposta

1

Ok, uma pergunta um pouco antiga, mas vamos responder de forma integral: -)

Digamos que você salvou este trabalho em /etc/init/myapp.conf , então o nome do trabalho seria myapp . Pedir o status do trabalho (e id do processo) seria simplesmente: status myapp (como root) ou sudo status myapp no caso típico do usuário do Ubuntu.

Os erros de inicialização vão para dmesg por padrão, portanto, fazer dmesg | grep "init:" fornece o log. O registro mais detalhado pode ser ativado por sudo initctl log-priority info . Níveis de depuração mais detalhados do que isso irão spamar e confundir você: -)

Fazer sudo stop myapp , sudo start myapp fornece feedback instantaneamente sobre o sucesso, além do ID do processo. No caso de você obter init: unknown job ou algo assim, o Upstart falhou ao analisar o arquivo de configuração e a linha e o motivo exatos podem ser encontrados no dmesg.

    
por Tuminoid 24.01.2012 / 06:56