Benjamin RD
Benjamin RD

Reputation: 12044

Keep alive express process after close the terminal

I'm trying to keep live a process after close the terminal. Is a node.js project with express. Basically, for other process I kept alive processes with:

$ node server.js &

I with that, was possible finish the SSH connection and close the console. But with express, I started my process with:

$ npm start &

And always, after one request, the process died. Exist a way to keep the process alive? I'm using EC2, with a Ubuntu instance.

Upvotes: 16

Views: 23014

Answers (4)

fdorantesm
fdorantesm

Reputation: 3388

You can use child_process.fork too.

Upvotes: 0

JCollier
JCollier

Reputation: 1179

I know that this is an old question, but for new visitors who identify with it, I'm going to go out on a limb here and guess that you are wanting to run a web app that is up all of the time: one that can service visitors to your IP address, night and day. If that is not the case, then screen or nohup can work fine, but if it IS the case, it is best practice to use a daemon like pm2 or forever.

Daemons are arguably the best way to keep a service running all the time... like, how does your Ubuntu instance know when you want to talk to it via SSH? It's due to sshd, the SSH daemon. The daemon has code that is always listening, just like you would want a web-app to do.

Also, pm2 and forever have some other nice features, like booting up the daemon again if your computer happens to crash-and-reboot.

Upvotes: 6

BorisD
BorisD

Reputation: 1824

Use sceen

on your terminal type :

screen

then

npm start

And detach the session by pressing “Ctrl+a” immediately followed by “d”

Here to attach the sesion again : Source

It works on CentOS7

Upvotes: 8

Benjamin RD
Benjamin RD

Reputation: 12044

I found the answer https://unix.stackexchange.com/questions/89483/keeping-a-process-running-after-putty-or-terminal-has-been-closed

Basically, you can use nohup process. (Execute Commands After You Exit From a Shell Prompt).

And I used:

$ nohup npm start &

And now is working good.

Upvotes: 23

Related Questions