nohup node service usando a tarefa cron no CentOS 7

0

Eu quero rodar nohup node service usando um cron job no CentOS 7. Para isso eu criei um arquivo /home/guest/start_indexjs mencionado abaixo:

#!/bin/bash

if pgrep -f "index.js" >/dev/null; then
echo "index.js is Running."
else
echo "index.js is Stopped."
nohup node /root/demo/index.js > /root/index-nohup.log &
fi

Eu faço o login com ssh root e executo o seguinte comando:

cd /home/guest/
chown root start_indexjs
chgrp -R root start_indexjs
chmod +x start_indexjs

Eu quero executar /home/guest/start_indexjs a cada minuto. Para isso eu adicionei a seguinte linha em /etc/crontab :

*/1 * * * * root /home/guest/start_indexjs > /var/log/start_indexjs.log

Eu criei /var/log/start_indexjs.log com as seguintes permissões:

-rwxrwxr-x  1 root   root    179 Aug 12 12:31 start_indexjs

Em seguida, reiniciei crond service usando o comando abaixo

systemctl restart crond.service

Depois de tudo isso, minha tarefa do cron está em execução, mas quando /home/guest/start_indexjs > /var/log/start_indexjs.log é executado, na tarefa do cron, meu index.js não é executado. Não há processo sendo executado com index.js usando o seguinte comando:

ps -ef | grep index.js
    
por user184346 12.08.2016 / 09:41

1 resposta

1

  • Para executar o script de crond , você precisa fornecer o caminho completo para todos os binários, que são pgrep e node em seu caso atual
  • nohup não é necessário. crond executa scripts sem alocar o terminal.
por 12.08.2016 / 10:14