Manish Kumar
Manish Kumar

Reputation: 10482

nodejs forever : How to run my npm application

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 ?

Upvotes: 19

Views: 40833

Answers (3)

Nisharg Shah
Nisharg Shah

Reputation: 19522

In 2022

Use forever npm package ( https://www.npmjs.com/package/forever )

forever start -c "npm <command\>" /path/to/app/dir/

EXAMPLE

./ means current directory

forever start -c "npm start" ./

Upvotes: 16

Sayan Saha
Sayan Saha

Reputation: 19

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>

Upvotes: -1

alandarev
alandarev

Reputation: 8635

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.

Upvotes: 30

Related Questions