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
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.