https://en.wikipedia.org/wiki/Init
http://www.tldp.org/HOWTO/HighQuality-Apps-HOWTO/boot.html
https://news.ycombinator.com/item?id=1368855
https://scottlinux.com/2014/10/19/use-monit-to-monitor-and-restart-unhealthy-services-in-linux/
http://blog.crocodoc.com/post/48703468992/process-managers-the-good-the-bad-and-the-ugly
Supervisor
configure a web interface which comes with Supervisord
https://serversforhackers.com/monitoring-processes-with-supervisord
Inside of /etc/supervisord.conf, add this:
[inet_http_server]
port = 9001
username = user
password = pass
It can start an crashed process automatically.
It can start the your process during the os boot.
Monit
It can monitor your process resource usage eg : CPU , memory also log files. Based on that it can restart your process.
It can start an crashed process.
It can bring up your process during the system boot.
It can send alert emails based on actions taken.