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

To have supervisor and 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 james.bond@gmail.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/).