Dead simple process manager with few features
npm install -g lil-pids
First create a file with the commands you wanna have running
# assuming this file is called 'services' node server.js node another-server.js
Then simply start lil-pids with the filename
It'll watch the file so every time you update it, old processes no longer referenced from the file will be shutdown and any new ones will be spawned.
lil-pids will forward all stdout, stderr to its own stdout, stderr prefixed with the process id.
It will also tell you when a command has been spawned, exited and finally it will restart processes when the crash/end.
lil-pids can also write the pids of the current running processes to a file. Just pass the pids filename as the 2nd argument
lil-pids ./services ./pids
Then you can simply
cat ./pids to see what is running at the moment.
lil-pids ./services ./pids with your OS' service monitor. Then it'll startup at boot and every thing you need to do is edit the services file.
> output.log and 2> errors.log to the end of a command to persist logs to files.
Cat the pids file and use
kill to restart a running process. Use
top to check how something is running.
# in front of a service to disable it temporarily.
To start lil-pids on server boot (or restart it when it crashes) you can add it using systemd.
npm install -g add-to-systemd sudo $(which add-to-systemd) -u $(whoami) -e PATH=$PATH lil-pids $(which lil-pids) ./services ./pids sudo systemctl start lil-pids