我有需要運行一個 Node 專案,如果出現某些原因失敗,可以再次運行它。

我想到使用 nodemon,它是當檔案發生變化時重新啟動 Node 進程的方式。

我以為它也會在進程崩潰時重新啟動,但事實並非如此。

因此,我找到了這個解決方案。

如果進程崩潰,我使用命令行在主要應用檔案上運行 touch 命令,這樣 nodemon 就會檢測到檔案的變化並重新啟動進程:

nodemon -x 'node app.js || touch app.js'

簡單而有效。

當然,在真實的環境中,你會使用像 pm2 這樣的強大解決方案(請參考我的教程如何使用 pm2 運行 Node.js 應用程式),但這對於我在本機運行幾小時的需求來說是有效的。

更新:另一個選擇是使用 Forever https://www.npmjs.com/package/forever