. minor formatting fixes (spaces, newlines) of messages

. check pids for being > 0 before kill()ing them (0 and negative
  numbers have special meanings that shouldn't be used)
This commit is contained in:
Ben Gras 2005-10-21 11:13:17 +00:00
parent 629453fba8
commit 1a37474437

View File

@ -167,7 +167,7 @@ PUBLIC void do_exit(message *m_ptr)
while ( (exit_pid = waitpid(-1, &exit_status, WNOHANG)) != 0 ) { while ( (exit_pid = waitpid(-1, &exit_status, WNOHANG)) != 0 ) {
#if VERBOSE #if VERBOSE
printf("RS: proc %d, pid %d,", rp->r_proc_nr, exit_pid); printf("RS: proc %d, pid %d, ", rp->r_proc_nr, exit_pid);
if (WIFSIGNALED(exit_status)) { if (WIFSIGNALED(exit_status)) {
printf("killed, signal number %d\n", WTERMSIG(exit_status)); printf("killed, signal number %d\n", WTERMSIG(exit_status));
} }
@ -246,7 +246,8 @@ message *m_ptr;
/* If the service was signaled with a SIGTERM and fails to respond, /* If the service was signaled with a SIGTERM and fails to respond,
* kill the system service with a SIGKILL signal. * kill the system service with a SIGKILL signal.
*/ */
else if (rp->r_stop_tm > 0 && now - rp->r_stop_tm > 2*RS_DELTA_T) { else if (rp->r_stop_tm > 0 && now - rp->r_stop_tm > 2*RS_DELTA_T
&& rp->r_pid > 0) {
kill(rp->r_pid, SIGKILL); /* terminate */ kill(rp->r_pid, SIGKILL); /* terminate */
} }
@ -261,7 +262,8 @@ message *m_ptr;
* be restarted automatically. * be restarted automatically.
*/ */
if (rp->r_alive_tm < rp->r_check_tm) { if (rp->r_alive_tm < rp->r_check_tm) {
if (now - rp->r_alive_tm > 2*rp->r_period) { if (now - rp->r_alive_tm > 2*rp->r_period &&
rp->r_pid > 0) {
#if VERBOSE #if VERBOSE
printf("RS: service %d reported late\n", rp->r_proc_nr); printf("RS: service %d reported late\n", rp->r_proc_nr);
#endif #endif
@ -313,6 +315,7 @@ struct rproc *rp;
case 0: /* child process */ case 0: /* child process */
execve(rp->r_argv[0], rp->r_argv, NULL); /* POSIX execute */ execve(rp->r_argv[0], rp->r_argv, NULL); /* POSIX execute */
printf("RS: exec failed for %s\n", rp->r_argv[0]);
report("RS", "warning, exec() failed", errno); /* shouldn't happen */ report("RS", "warning, exec() failed", errno); /* shouldn't happen */
exit(EXEC_FAILED); /* terminate child */ exit(EXEC_FAILED); /* terminate child */
@ -328,7 +331,8 @@ struct rproc *rp;
if (rp->r_dev_nr > 0) { /* set driver map */ if (rp->r_dev_nr > 0) { /* set driver map */
if ((s=mapdriver(child_proc_nr, rp->r_dev_nr, rp->r_dev_style)) < 0) { if ((s=mapdriver(child_proc_nr, rp->r_dev_nr, rp->r_dev_style)) < 0) {
report("RS", "couldn't map driver", errno); report("RS", "couldn't map driver", errno);
kill(child_pid, SIGKILL); /* kill driver */ if(child_pid > 0) kill(child_pid, SIGKILL); /* kill driver */
else report("RS", "didn't kill pid", child_pid);
rp->r_flags |= RS_EXITING; /* expect exit */ rp->r_flags |= RS_EXITING; /* expect exit */
return(s); /* return error */ return(s); /* return error */
} }
@ -341,7 +345,8 @@ struct rproc *rp;
m.PR_PROC_NR = child_proc_nr; m.PR_PROC_NR = child_proc_nr;
if ((s = _taskcall(SYSTEM, SYS_PRIVCTL, &m)) < 0) { /* set privileges */ if ((s = _taskcall(SYSTEM, SYS_PRIVCTL, &m)) < 0) { /* set privileges */
report("RS","call to SYSTEM failed", s); /* to let child run */ report("RS","call to SYSTEM failed", s); /* to let child run */
kill(child_pid, SIGKILL); /* kill driver */ if(child_pid > 0) kill(child_pid, SIGKILL); /* kill driver */
else report("RS", "didn't kill pid", child_pid);
rp->r_flags |= RS_EXITING; /* expect exit */ rp->r_flags |= RS_EXITING; /* expect exit */
return(s); /* return error */ return(s); /* return error */
} }
@ -384,7 +389,8 @@ int how;
#endif #endif
rp->r_flags |= how; /* what to on exit? */ rp->r_flags |= how; /* what to on exit? */
kill(rp->r_pid, SIGTERM); /* first try friendly */ if(rp->r_pid > 0) kill(rp->r_pid, SIGTERM); /* first try friendly */
else report("RS", "didn't kill pid", rp->r_pid);
getuptime(&rp->r_stop_tm); /* record current time */ getuptime(&rp->r_stop_tm); /* record current time */
} }