CentOS 7でcronジョブを使用したNohupノードサービス

CentOS 7でcronジョブを使用したNohupノードサービス

nohup node serviceCentOS 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すべてのバイナリへのフルパスを提供する必要があります。 pgrepnode
  • nohup必要ありません。crond端末を割り当てずにスクリプトを実行します。

おすすめ記事