Eu tenho um servidor Ubuntu onde coloco o núcleo do meu aplicativo. É um jar que precisa estar sempre ouvindo pedidos.
Eu fiz um script para executá-lo com os parâmetros corretos.
O cenário é semelhante a este:
local do script: /home/andrea/core/script.sh
script.sh usa um parâmetro, "start" ou "stop" dependendo do que eu preciso fazer.
Como eu preciso que ele esteja ativo, criei um cron job que verifica se está ativo e, caso contrário, o inicia novamente com os seguintes comandos:
crontab -e
*/5 * * * * /home/andrea/core/testscriptalive.sh
em que testscriptalive.sh é:
#! / bin / bash
# Check if core is running
if [ ! -f /tmp/core.pid ]; then
cd /home/andrea/core/
./script.sh start
./email.sh
fi
Então, a cada 5 minutos o cron roda o script "testscriptalive.sh", que basicamente verifica se existe o PID correto e se ele não iniciar novamente o núcleo e me envia um e-mail.
Até agora tudo bem.
O que eu preciso fazer é: se eu quiser parar o núcleo por razões X, como posso impedir que o cron job seja executado sem editá-lo manualmente?
Por exemplo, se no console eu inserir "./script stop" após 5 minutos, o cron job reinicia automaticamente mesmo que eu não queira.
Eu preciso de dois scripts sh para acoplar meus parâmetros "start" e "stop" que:
começar:
checks if the job is correctly stored in cron, if not adds it
pare:
removes the job from cron
Como posso conseguir isso?
Obrigado