There are no problems at spawing an external process.
Simply, Nginx does not directly support this and you will get a lot of
NOTICE messages in the log when each process exits (even if it exits
with a success status code).
That is fine. Such “upstream server down” events should be rare and the
extra notices in the logs will not impact things.
Personally I’m not interested in this feature, sorry.
I have given a look in the Nginx source code and it seems that all you
want is implementable, and it should require only a few hours of coding.
Thank you. Can you provide a hint as to what .c file(s) I would need to
modify and what types of system calls I should look at? Maybe all I need
to do is find the spot where nginx deems it should skip a downed server,
and immediately after that add this code:
if (fork() == 0)
execl("/bin/sh","/path/to/upstream_down.sh",“ID of down upsteam goes
Or should I be using the system() function?
Any other considerations I need to worry about?
Also if I make this change might it be adopted and incorporated into the
product? I would not want to have to keep applying my own patch every
time I compile a new version of nginx and am happy to contribute my work
to this excellent product and project. Thank you.
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now.