#include <signal.h>
#include <sys/wait.h>
#include <time.h>
+#include <errno.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
static void runchild(void)
{
execvp(chspec[0], chspec);
+ fprintf(stderr, "%s: %s", chspec[0], strerror(errno));
exit(127);
}
pselect(0, NULL, NULL, NULL, NULL, &ns);
if(chdone) {
while((ch = waitpid(-1, &st, WNOHANG)) > 0) {
+ if(WCOREDUMP(st))
+ fprintf(stderr, "multifscgi: child %i (%s) dumped core\n", ch, chspec[0]);
for(i = 0; i < nchildren; i++) {
if(children[i] == ch)
children[i] = 0;
pselect(0, NULL, NULL, NULL, &to, &ns);
if(chdone) {
while((ch = waitpid(-1, &st, WNOHANG)) > 0) {
+ if(WCOREDUMP(st))
+ fprintf(stderr, "multifscgi: child %i (%s) dumped core\n", ch, chspec[0]);
for(i = 0; i < nchildren; i++) {
if(children[i] == ch)
children[i] = 0;
static void usage(FILE *out)
{
- fprintf(out, "usage: multifscgi NUM PROGRAM [ARGS...]\n");
+ fprintf(out, "usage: multifscgi [-h] NUM PROGRAM [ARGS...]\n");
}
int main(int argc, char **argv)
{
int c;
- while((c = getopt(argc, argv, "h")) >= 0) {
+ while((c = getopt(argc, argv, "+h")) >= 0) {
switch(c) {
case 'h':
usage(stdout);