how to automatically restart a node server?

72,774

Solution 1

Yes, upstart will restart your process without a reboot.

Also, you should look into forever.

Solution 2

PM2 is a Production process manager for Node.js app.

Solution 3

If your focus for automatic restart is an always running application, I suggest to use a process manager. Process manager, in general, handles the node process(es if cluster enabled), and is responsible for the process/es execution. PM leans on the operative system: your node app and the OS are not so strinctly chained because the pm is in the middle.

Final trick: put the process manager on upstart.

Here is a complete performance improvement path to follow.
Share:
72,774
H.M.Mubashir
Author by

H.M.Mubashir

Generalist with broad knowledge in many fields

Updated on October 10, 2021

Comments

  • H.M.Mubashir
    H.M.Mubashir over 2 years

    We are finishing development of a project, the client is already using it but occasionally some errors occur - crashing the server.

    I know I could register a service as 'upstart' script on linux, in order to have my node service restart when it crashes.

    But our server is running other stuff, so we can't restart it. Well, actually, while writing, I realize I have two questions then:

    • Will 'upstart' work without having to reboot? Something is just whispering yes to me :)
    • If not, what other option would I have to 'respawn' my node server when it crashes?
  • syonip
    syonip about 9 years
    The Global Error Handler is discouraged by joyent's guide to error handling: joyent.com/developers/node/design/errors. In case some unknown bug caused an exception, it's better to crash the app (and restart it) than leave it in a bad state that will lead to more hard-to-debug bugs.
  • Daniel
    Daniel about 9 years
    True. I wasn't aware of that when I posted this answer. Thanks for pointing it out. I'll remove that.