這是在 Ubuntu 10.04 LTS 上
所以我有一個 gulp 腳本(透過 Node 運行),當我手動執行它時效果很好。它實際上在目錄上運行“監視”,以便如果任何檔案發生更改,它會自動運行命令。我遇到的最初問題是,如果我保存有錯誤的更改,「手錶」就會崩潰。
我想我可以透過 upstart 執行 gulp 腳本來解決這個問題,並在崩潰時重新產生它。但是當我運行“start gulpwatch”甚至“sudo start gulpwatch”時,它說它啟動並給我一個pid,但實際上它只是啟動並崩潰並且不維護“watch”。這在系統日誌中得到了證實,我在其中看到了以下幾行:
Mar 24 14:19:19 ubuntu init: gulpwatch main process (2653) terminated with status 2
2072 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2073 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2654) terminated with status 2
2074 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2075 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2655) terminated with status 2
2076 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2077 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2656) terminated with status 2
2078 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2079 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2657) terminated with status 2
2080 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2081 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2658) terminated with status 2
這是我的新貴文件
/etc/init/gulpwatch.conf
start on runlevel [2345]
stop on runlevel [016]
respawn
respawn limit 5 10
exec "cd /opt/lib/vendor/node/;/usr/bin/gulp --gulpfile gulpfile.js"
當我執行上面列出的兩個命令“cd /opt/lib/vendor/node/”和“/usr/bin/gulp --gulpfile gulpfile.js”時,它可以正常工作(但如果由於崩潰而崩潰,當然不會重新產生)監視文件中的語法錯誤)。
知道為什麼我的暴發戶腳本不起作用嗎?
答案1
我想到了。我需要運行 chdir/opt/lib/vendor/node/
然後從exec
語句中刪除該部分。顯然exec
不運行任何舊的 shell 命令,它只執行腳本(和參數)
答案2
在透過 upstart 腳本執行之前,您必須嘗試執行該行。我的意思是這一行:
cd /opt/lib/vendor/node/;/usr/bin/gulp --gulpfile gulpfile.js
當你在伺服器上運行它時,你得到了什麼?如果出現錯誤而不是成功,請先解決它。