I had the need to run a Node project and if that failed for some reason, run it again.
I had the idea of using nodemon, which is the way to restart a node process when a file changes.
I was thinking it did the same if the process crashed but it’s not how it works.
So I found this solution.
If the process crashes, I use the command line to run the
touch command on the main app file, so nodemon detects a change in the file and restarts the process:
nodemon -x 'node app.js || touch app.js'
Of course in a real environment you’d use a robust solution like pm2 (see my tutorial how to use pm2 to serve a Node.js app) but this is something I need to run for a couple hours on my local machine and it works.
Update: an alernative is using Forever https://www.npmjs.com/package/forever