Deseja criar um script inicial; precisa de ajuda e conselhos

13

Atm, eu preciso começar aleatoriamente e parar (por falta de uma palavra melhor em minha mente) um trabalho. Eu começo digitando java -jar foo.jar e para pará-lo, descobrir seu pid e matá-lo. Matar isso não causa nenhuma perda de dados ou corrupção ou qualquer coisa, apenas FYI. É tedioso fazer essas duas etapas porque o primeiro comando deve ser executado a partir de um diretório específico, ou seja, /usr/share/jetty (o kill pode ser executado de qualquer lugar).

Então eu estava pensando em algo nas linhas de

service foo start e service foo stop para iniciar e parar serviços. Isso é possível e, mais importante, correto? existe alguma outra solução?

Obrigado.

    
por theTuxRacer 18.01.2011 / 11:46

1 resposta

13

Sim, o Upstart é uma ótima opção para isso. Basta criar um novo arquivo:

sudoedit /etc/init/my-jetty-jar.conf

Você pode alterar o nome do arquivo para o que quiser, mas depois colocar isso nele:

description     "Run my jetty jar"

# no start option as you might not want it to auto-start
# This might not be supported - you might need a: start on runlevel [3]
stop on runlevel [!2345]

# if you want it to automatically restart if it crashes, leave the next line in
respawn

script
    cd /usr/share/jetty
    su -c "/usb/bin/java -jar /path/to/foo.jar" nobody
end script

Algumas notas sobre isso, estou su ninguém para segurança. Você pode precisar dele para su em outra conta, mas provavelmente não é recomendado que ele seja executado como root .

    
por Oli 18.01.2011 / 12:12