Restarting a Node process without file changes
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'
Simple, works.
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
→ I wrote 17 books to help you become a better developer:
- C Handbook
- Command Line Handbook
- CSS Handbook
- Express Handbook
- Git Cheat Sheet
- Go Handbook
- HTML Handbook
- JS Handbook
- Laravel Handbook
- Next.js Handbook
- Node.js Handbook
- PHP Handbook
- Python Handbook
- React Handbook
- SQL Handbook
- Svelte Handbook
- Swift Handbook
Also, JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025