supervisor has some awesome plugins. One among them is
superlance. It allows you to notify via email in case of certain event occurrence. For ex: you can send an email to the ops guys if a process terminates abruptly.
Here's a sample python application that will terminate abruptly every 30 seconds:
import time i = 10 while True: print "I am still working" time.sleep(3) j= 1000 / i i -= 1
superlance setup (for Ubuntu) you need to:
pip install supervisor pip install superlance sudo apt-get install sendmail ``` Next is `superlance` config file. I am providing the `program` and `email` config part below. For full file you can look at my github project here: ```language-bash [program:simple_app] command=python simple_app.py process_name=%(program_name)s numprocs=1 directory=/home/ravi/dev/projects/python/supervisor-play autostart=true startretries=3 stdout_logfile=~/dev/projects/python/supervisor-play/s.out stderr_logfile=/home/ravi/dev/projects/python/supervisor-play/s.err [eventlistener:crashmail] command=/home/ravi/.virtualenvs/super-awesome/bin/crashmail -a -m email@example.com events=PROCESS_STATE ``` To start up your program simply do: `supervisord -c supervisord.conf -n` And that's it! *You have got mail!!! ;-)* **Gotchas**: 1. I did not have `sendmail` installed and supervisor was failing silently. 1. You need to fail abruptly and apparently sending process kill signal is not abrupt. I have to fail with some unexpected program error. > Written with [StackEdit](https://stackedit.io/).