#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#include <signal.h>
#include <ctype.h>
#include <sys/un.h>
#include <sys/types.h>
init_ps_display("", "", "", "");
- signal(SIGCHLD, SIG_DFL);
- signal(SIGHUP, SIG_IGN);
- signal(SIGINT, wd_exit);
- signal(SIGQUIT, wd_exit);
- signal(SIGTERM, wd_exit);
- signal(SIGPIPE, SIG_IGN);
+ pool_signal(SIGCHLD, SIG_DFL);
+ pool_signal(SIGHUP, SIG_IGN);
+ pool_signal(SIGINT, wd_exit);
+ pool_signal(SIGQUIT, wd_exit);
+ pool_signal(SIGTERM, wd_exit);
+ pool_signal(SIGPIPE, SIG_IGN);
set_ps_display("lifecheck",false);
/* wait until ready to go */
*/
#include <sys/types.h>
#include <sys/socket.h>
-#include <signal.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
myargv = save_ps_display_args(myargc, myargv);
- signal(SIGTERM, wd_child_exit);
- signal(SIGINT, wd_child_exit);
- signal(SIGQUIT, wd_child_exit);
- signal(SIGCHLD, SIG_IGN);
- signal(SIGHUP, SIG_IGN);
- signal(SIGUSR1, SIG_IGN);
- signal(SIGUSR2, SIG_IGN);
- signal(SIGPIPE, SIG_IGN);
- signal(SIGALRM, SIG_IGN);
+ pool_signal(SIGTERM, wd_child_exit);
+ pool_signal(SIGINT, wd_child_exit);
+ pool_signal(SIGQUIT, wd_child_exit);
+ pool_signal(SIGCHLD, SIG_DFL);
+ pool_signal(SIGHUP, SIG_IGN);
+ pool_signal(SIGUSR1, SIG_IGN);
+ pool_signal(SIGUSR2, SIG_IGN);
+ pool_signal(SIGPIPE, SIG_IGN);
+ pool_signal(SIGALRM, SIG_IGN);
init_ps_display("", "", "", "");
for (;;)
{
int result;
- result = wait(&status);
+
+ result = waitpid(pid, &status, 0);
if (result < 0)
{
if (errno == EINTR)
continue;
+
+ pool_debug("exec_ifconfig: waitpid() failed. reason: %s ", strerror(errno));
+
return WD_NG;
}
if (WIFEXITED(status) == 0 || WEXITSTATUS(status) != 0)
+ {
+ pool_debug("exec_ifconfig: '%s' failed. exit status: %d",
+ command, WEXITSTATUS(status));
return WD_NG;
+ }
else
break;
}
close(pfd[0]);
}
+ pool_debug("exec_ifconfig: '%s' succeeded", command);
+
return WD_OK;
}
#include <time.h>
#include <string.h>
#include <stdlib.h>
-#include <signal.h>
#include <unistd.h>
#include <netdb.h>
#include "pool.h"