私は得ています
forever:command not found cronjobとしてforeverコマンドを使用してnodejsプロセスを実行するとエラー(Amazon ec2マシンで):使用しているbashスクリプトには次のコードがあります:
cd // location/of/the/nodejs/file
file.jsを永久に起動します
しかし、bash script.shを使用してこのファイルを実行できますが、cronjobで実行するとforever:command not foundエラーが発生します
私はこれがなぜなのかわからないので混乱しています。
他の誰かがこの問題に直面しましたか?
前もって感謝します
ちょっと同じ問題に直面していた
中古 npm install forever -g
そして私の問題は解決されました...多分それもあなたを助けるでしょう
この問題に直面している他のユーザーの場合:
foreverモジュールのパスを追加してから、スクリプトをcronjobとして実行する必要があります。
Linuxでは、通常、パスは次のとおりです。
/ usr/local/lib/node_modules/forever/bin/forever start file.js
スクリプトでこのコマンドを使用すると、エラーforever:command not foundは気になりません。
私はこれを行うために他のいくつかの派手な方法がなければならないことを知っていますが、このハックに満足しています
azero0の解決策がうまくいかず、Linuxを実行している場合は、試してください
Sudo npm install forever -g
すでに試した場合:
Sudo npm install forever -g
それでもforever:command not found
出力の最初の行に注意してください。これは次のようになります。
/<node_bin_path>/forever -> /lib/node_modules/forever/bin/forever
ここで、node_bin_path
は、実行可能ファイルが置かれている場所です。これは、おそらくあなたが期待する場所ではありません。
これは、パス内のnode
がシンボリックリンクである可能性があります。この場合、forever
は、シンボリックリンクの場所ではなく、node
の実際のインストール場所にインストールされます。
それは永遠にグローバルに見つからないようです、以下のコマンドを使用して解決してください
npm i forever -g
以下のbashスクリプトコード実行中のスクリプトを確認します。停止と開始および通知メールを実行していない場合。
クロンタブ
*/1 * * * * sh /root/yourscriptdirectory/checklive.sh >> /root/yourscriptdirectory/cron.log 2>&1
checklive.sh
chmod + x ./checklive.sh
cd /root/yourscriptdirectory/
ps xa | grep -F "/usr/local/bin/node /root/yourscriptdirectory/script.js" | grep -Fv "grep" > /dev/null
if [ $? -eq 0 ]; then
echo ""
else
echo "script.js not running. Restart"
/usr/local/bin/node /usr/local/lib/node_modules/forever/bin/forever stop script.js
/usr/local/bin/node /usr/local/lib/node_modules/forever/bin/forever start script.js
echo "STOP : script.js Process is stoped restarting..." | mail -s "STOP : script.js Process is stoped restarting..." "<[email protected]>" &
fi
Sudo npm install forever --global
これはubuntu 16.04サーバーとnodejs v7.5.0で私のために働いた