Right now i am runnign my nodejs application as npm start
. i want to run it in background. I found forever
package for this but dont know how can i run a application that i usually run as npm start
. So how can i run it using forever
?
I follow this SO but getting this error:
ENVIRONMENT=production forever start app.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: app.js
apart of this Is there any other better way to run nodejs in background ?
You are doing it right.
The warnings are just reminding you that some essential information is missing, so it assigns the defaults. To be exact, if your script crashes/exits sooner than a second after start, forever will exit as well.
If you would like to get rid of those warnings:
forever start --minUptime 1000 --spinSleepTime 1000 app.js
Furthermore, you can open the package.json
file, find the:
"scripts": {
"start": "node app.js"
},
and change it to:
"scripts": {
"start": "forever start --minUptime 1000 --spinSleepTime 1000 app.js",
"stop": "forever stop app.js"
},
Now you can use npm start
and it will invoke forever
automatically.
For Linux
Use terminal and enter in superuser mode, and try these code
$ nohup node <location of of js file> &
$ exit
Note: This '&' is must before you press enter
or for npm command, just goto the location by cd command where your package.json is stored. Then
$ nohup npm start &
$ exit
Note: This '&' is must before you press enter
To stop it
$ top
You can see process id here, then use following code
$ kill -9 <PROCESS_ID>