110 |
sigemptyset(&mask); |
sigemptyset(&mask); |
111 |
sigaddset(&mask, SIGCHLD); |
sigaddset(&mask, SIGCHLD); |
112 |
pthread_sigmask(SIG_BLOCK, &mask, &save); |
pthread_sigmask(SIG_BLOCK, &mask, &save); |
113 |
|
|
114 |
if((pid= fork()) < 0) { |
pthread_mutex_lock(&Run.mutex_fd); |
115 |
|
|
116 |
|
pid= fork(); |
117 |
|
|
118 |
|
pthread_mutex_unlock(&Run.mutex_fd); |
119 |
|
|
120 |
|
if(pid < 0) { |
121 |
|
|
122 |
log("Cannot fork of a new process\n"); |
log("Cannot fork of a new process\n"); |
123 |
exit(1); |
exit(1); |
124 |
|
|
125 |
} else if(pid == 0) { |
} else if(pid == 0) { |
126 |
|
|
127 |
if((pid= fork()) < 0) { |
if((pid= fork()) < 0) { |
|
|
|
128 |
log("Cannot fork of a new process\n"); |
log("Cannot fork of a new process\n"); |
129 |
exit(1); |
exit(1); |
|
|
|
130 |
} |
} |
131 |
|
|
132 |
else if(pid > 0) { |
else if(pid > 0) { |
178 |
|
|
179 |
log_close(); |
log_close(); |
180 |
|
|
|
fd_close(); |
|
|
|
|
181 |
(void) execv(C->arg[0], C->arg); |
(void) execv(C->arg[0], C->arg); |
182 |
|
|
183 |
exec_alert_mail(S, C); |
exec_alert_mail(S, C); |