nohup node service
CentOS 7でcronジョブを使用して実行したいです。そのために、/home/guest/start_indexjs
次のようなファイルを作成しました。
#!/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
ログインssh root
し、次のコマンドを実行します。
cd /home/guest/
chown root start_indexjs
chgrp -R root start_indexjs
chmod +x start_indexjs
/home/guest/start_indexjs
毎瞬走りたかったです。これを行うには、次の行を追加しました/etc/crontab
。
*/1 * * * * root /home/guest/start_indexjs > /var/log/start_indexjs.log
/var/log/start_indexjs.log
次の権限で作成します。
-rwxrwxr-x 1 root root 179 Aug 12 12:31 start_indexjs
その後、crond
次のコマンドを使用してサービスを再起動しました。
systemctl restart crond.service
結局のところ、私のcronジョブは実行中ですが、/home/guest/start_indexjs > /var/log/start_indexjs.log
実行されたときにcronジョブ内で私のジョブはindex.js
実行されません。index.js
次のコマンドを使用して実行中のプロセスはありません。
ps -ef | grep index.js
答え1
- 現在のところ、スクリプトを実行するには、
crond
すべてのバイナリへのフルパスを提供する必要があります。pgrep
node
nohup
必要ありません。crond
端末を割り当てずにスクリプトを実行します。