Sou novo no script do Shell no Linux e gostaria de escrever um script de shell que execute a cada duas horas, verifique se há um serviço em execução na porta 3001 e, se não, reinicie o serviço, neste caso um Node.js aplicação com Gulp.
Eu preciso deste script de shell para executar a cada 2 horas, a fim de verificar se o aplicativo ainda está em execução e se não, reinicie o aplicativo, porque o ambiente do Virtual Server, em que o aplicativo está sendo executado, é instável e desliga de de vez em quando sem motivo.
Portanto, o script Shell deve conter o comando "gulp serve". Ele deve ser executado na pasta do aplicativo Node e agir como se uma pessoa pudesse inserir o comando "gulp serve" por linha de comando na pasta do projeto. Qual seria a melhor maneira de fazer isso? Quaisquer sugestões e comentários serão apreciados, obrigado!
Isso é o que eu descobri até agora como ponto de partida:
#!/bin/bash
###edit the following
service=Node.js
[email protected]
###stop editing
host='hostname -f'
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
then
echo "$service is running"
else
/etc/init.d/$service start
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
then
subject="$service at $host has been started"
echo "$service at $host wasn't running and has been started" | mail -s "$subject" $email
else
subject="$service at $host is not running"
echo "$service at $host is stopped and cannot be started!!!" | mail -s "$subject" $email
fi
fi
Tags shell-script