我有一個簡單的bash腳本編寫,自動部署代碼到我的Node.js服務器提交時,然後重新啓動服務器使用永遠。該腳本定期在cronjob上運行。噢,該網站在發佈之前仍處於開發階段,因此服務器不斷重新啓動。 :)節點 - 嘗試重新啓動使用Forever將無法在cronjob上的bash腳本中工作
腳本做一些其他的事情,但真正有趣的部分是下面的代碼兩行:
forever stopall
forever start app.js
當我在命令行手動運行該腳本自己,下面的輸出出現來自這兩個命令:
Stopping all node jobs
info: Forever stopped processes:
data: uid command script forever pid logfile uptime
data: [0] ev5a /usr/local/bin/node app.js 17482 17484 /home/ec2-user/.forever/ev5a.log 0:0:13:17.967
Starting up node server again
info: Forever processing file: app.js
然而,當作業通過cron自動運行,這是被輸出:
Stopping all node jobs
^[[32minfo^[[39m: No forever processes running
Starting up node server again
^[[32minfo^[[39m: Forever processing file: ^[[90mapp.js^[[39m
這對我來說真的很奇怪。看起來,當腳本通過cron運行時,Forever似乎認爲甚至沒有任何Node進程在嘗試停止時運行。我知道Node進程正在運行的事實,所以不知道爲什麼這會顯示出來。似乎兩種運行方法之間應該沒有區別。這兩個腳本都以相同的用戶身份運行。有誰知道爲什麼永遠像這樣奇怪的表現?
你會輸入'crontab -l'嗎? – meeDamian 2013-04-25 10:08:17