Nodemon + Forever not detecting changes to files

I have the following command:

/usr/local/bin/forever start -o /home/username/path/out.log -e /home/username/path/err.log /usr/local/bin/nodemon --watch /home/username/scriptpath --exitcrash /home/username/scriptpath/example.js

Which I understand should:

  • Run Forever as a daemon
  • Run Nodemon, which will restart the script when a change is seen in /home/username/scriptpath, and will also 'exit' to forever on crashing, allowing forever to restart it all.

However I'm observing Nodemon not restarting upon changes to the files in the watched folder. (Though forever is restarting on crash, when I intentionally cause one.)

Note: Running only "nodemon example.js" works as expected, and restarts on change to file.

What do I need to change to allow Nodemon to re-start the script upon file changes?

My knowledge of linux commands are limited unfortunately, I may well be using the wrong ones.

It will only watch changes in files that are liked to the script you are running by require.

For instance: forever ./script.js ...

var x = require("./test")

Will restart ./script if ./test is changed.

I use forever-service and nodemon.

Here is an example of how I use it to do all you mention.

This example does the following: everytime a json or raml file in the applications dist/assets folder is modified, wait 10 seconds and then restart the node app (server.js script):

forever-service install raml --script server.js -f " -c nodemon" -o " --delay 10 --watch dist/assets -e json,raml --exitcrash" -e "PATH=/usr/local/bin:$PATH"

It will also dump a log file to /var/log/raml.log

I hope that helps!