Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best way to send email when PHP process dies

Tags:

php

email

nginx

I wrote a quick PHP page to handle 502 requests. Nginx will re-direct to this page when a 502 is encountered and an email is fired off.

The problem is, most of the time that the 502 is encountered is because PHP has died, so writing to the DB and sending an email using PHP is no longer possible. Tweaks to PHP-FPM settings have done a lot to help (restarting PHP, etc), but I'd still like a fall-back.

There are numerous ways to send an email outside of PHP, but I am curious what others out there are doing with good success? I'd like to keep it simple for configuration (i.e. not have yet another complex dependency to worry about on the servers) and reliability reasons.

Googling and searching SO didn't turn up much, probably because "dies" and "fail" bring back a lot of false positives for my scenario.

like image 241
Brian Avatar asked Dec 27 '12 17:12

Brian


1 Answers

What about use a cronjob (bash based) to parse error_log file periodically (x hours) and send an email (mutt/mail) when find something like resuming normal operations in the last period (x hours). I think is simple and effective...

[Thu Dec 27 14:37:52 2012] [notice] caught SIGTERM, shutting down
[Thu Dec 27 14:37:53 2012] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.6-2~precise+1 configured -- resuming normal operations

UPDATE:

@Brian As @takeshin says cronjobs can run even every second if you want, but some sysadmins could bite you... :|

like image 67
Igor Parra Avatar answered Sep 30 '22 04:09

Igor Parra