Is there any way supervisord can automatically restart a failed/exited/terminated job and send me a notification email with a dump of the last x lines of log file?
There is a plugin called superlance.
You install it with "easy_install superlance" or download it at: http://pypi.python.org/pypi/superlance
The next thing you do is you go into your supervisord.conf and add the following lines:
This should be followed by a "supervisorctl update". When a process "exits" you will now get a notification sent to email@example.com.
If you only want to listen to some selected apps you can exchange the -a for a -p program1 or if it is a group group1:program2 One example would be
Regarding the automatic restart: you should make sure that autorestart is set to true (it is set to unexpected by default). This way the package will be restarted 3 times. If after that it still exists it gives up but you can change that with startretries.