comparison src/os/unix/ngx_process.c @ 222:99df0edb63ed

nginx-0.0.1-2004-01-09-00:02:06 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 08 Jan 2004 21:02:06 +0000
parents 401154e21826
children d427f1c3fe95
comparison
equal deleted inserted replaced
221:401154e21826 222:99df0edb63ed
110 110
111 exit(1); 111 exit(1);
112 } 112 }
113 113
114 114
115 void ngx_signal_processes(ngx_cycle_t *cycle, ngx_int_t signal) 115 void ngx_signal_processes(ngx_cycle_t *cycle, ngx_int_t signo)
116 { 116 {
117 ngx_uint_t i; 117 ngx_uint_t i;
118 118
119 for (i = 0; i < ngx_last_process; i++) { 119 for (i = 0; i < ngx_last_process; i++) {
120 120
121 if (ngx_processes[i].detached) { 121 if (ngx_processes[i].detached) {
122 continue; 122 continue;
123 } 123 }
124 124
125 #if 0
125 if (ngx_processes[i].exited) { 126 if (ngx_processes[i].exited) {
126 if (i != --ngx_last_process) { 127 if (i != --ngx_last_process) {
127 ngx_processes[i--] = ngx_processes[ngx_last_process]; 128 ngx_processes[i--] = ngx_processes[ngx_last_process];
128 } 129 }
129 continue; 130 continue;
130 } 131 }
132 #endif
131 133
132 ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0, 134 ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0,
133 "kill (" PID_T_FMT ", %d)" , 135 "kill (" PID_T_FMT ", %d)" ,
134 ngx_processes[i].pid, signal); 136 ngx_processes[i].pid, signo);
135 137
136 if (kill(ngx_processes[i].pid, signal) == -1) { 138 if (kill(ngx_processes[i].pid, signo) == -1) {
137 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, 139 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
138 "kill(%d, %d) failed", ngx_processes[i].pid, signal); 140 "kill(%d, %d) failed", ngx_processes[i].pid, signo);
139 continue; 141 continue;
140 } 142 }
141 143
142 if (signal != ngx_signal_value(NGX_REOPEN_SIGNAL)) { 144 if (signo != ngx_signal_value(NGX_REOPEN_SIGNAL)) {
143 ngx_processes[i].exiting = 1; 145 ngx_processes[i].exiting = 1;
144 } 146 }
145 } 147 }
146 } 148 }
147 149
149 void ngx_respawn_processes(ngx_cycle_t *cycle) 151 void ngx_respawn_processes(ngx_cycle_t *cycle)
150 { 152 {
151 ngx_uint_t i; 153 ngx_uint_t i;
152 154
153 for (i = 0; i < ngx_last_process; i++) { 155 for (i = 0; i < ngx_last_process; i++) {
154 if (!ngx_processes[i].exited) { 156 if (ngx_processes[i].exiting || !ngx_processes[i].exited) {
155 continue; 157 continue;
156 } 158 }
157 159
158 if (!ngx_processes[i].respawn) { 160 if (!ngx_processes[i].respawn) {
159 if (i != --ngx_last_process) { 161 if (i != --ngx_last_process) {
210 process = ""; 212 process = "";
211 213
212 for (i = 0; i < ngx_last_process; i++) { 214 for (i = 0; i < ngx_last_process; i++) {
213 if (ngx_processes[i].pid == pid) { 215 if (ngx_processes[i].pid == pid) {
214 ngx_processes[i].status = status; 216 ngx_processes[i].status = status;
215 217 ngx_processes[i].exited = 1;
216 if (!ngx_processes[i].exiting) {
217 ngx_processes[i].exited = 1;
218 }
219
220 process = ngx_processes[i].name; 218 process = ngx_processes[i].name;
221 break; 219 break;
222 } 220 }
223 } 221 }
224 222