3

My service is very basic, just an HTTP service. I just want it to restart automatically when it quits because of an error. I figured I could use runit to do this, but it seems like the runit docs mostly talk about how to convert your entire init.d to runit. I want to preserve init.d and just use runit for my one service.

I was looking at these docs.

Thanks.

EDIT: I think this is pointing in the right direction, I guess I just need to know how to make a service now.

Bjorn
  • 133
  • 5

2 Answers2

6

Node is really simple to get running with runit. Assuming you already have runit installed in a standard directory layout, create the directory /service/node-service and place the create the file /service/node-service/run:

#!/bin/sh
chpst -unobody node /path/to/your-service.js

Make that run script executable (chmod +x run) and you can test it by running sudo ./run. If you're running on Debian or Ubuntu, rather than installing runit from source it's easiest to just apt-get install runit and create the directory /etc/sv/node-service instead of /service/node-service, and then symlink /etc/sv/node-service to /etc/service/node-service. Also, if you want your service to run in the context of a user other than nobody, you should change the -u<username> parameter to reflect that.

natacado
  • 3,317
  • 28
  • 27
2

Take a look at forever.

yojimbo87
  • 672
  • 5
  • 10
  • 21