@ThomasWard A SystemD service sounds like a good way to do it. I just put it in /etc/rc.local, using screen for later monitoring, but what I did doesn't restart it if the nocrash.py process actually does crash.

I, also, would be interested in a write-up, if you're willing to spend the time.

STDERR: To github.com:Charcoal-SE/SmokeDetector.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@github.com:Charcoal-SE/SmokeDetector.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes

[ SmokeDetector | MS ] Blacklisted website in body, body starts with title and ends in url, pattern-matching product name in body, potentially bad ns for domain in body, potentially bad keyword in body (297): Are recorded beneath Apple by user163417 on wordpress.SE