Mercurial > hg > nginx
diff src/os/unix/ngx_process.h @ 218:05592fd7a436
nginx-0.0.1-2004-01-05-23:55:48 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 05 Jan 2004 20:55:48 +0000 |
parents | 71ce40b3c37b |
children | 4f81b931e9ff |
line wrap: on
line diff
--- a/src/os/unix/ngx_process.h +++ b/src/os/unix/ngx_process.h @@ -4,11 +4,51 @@ typedef pid_t ngx_pid_t; -#define ngx_getpid getpid +typedef void (*ngx_spawn_proc_pt) (ngx_cycle_t *cycle, void *data); + +typedef struct { + ngx_pid_t pid; + int status; + + ngx_spawn_proc_pt proc; + void *data; + char *name; + + unsigned respawn:1; + unsigned detached:1; + unsigned exited:1; + unsigned exiting:1; +} ngx_process_t; -int ngx_spawn_process(ngx_log_t *log); -void ngx_sigchld_handler(int signo); +typedef struct { + char *path; + char *name; + char *const *argv; + char *const *envp; +} ngx_exec_ctx_t; + + +#define ngx_getpid getpid + +#define NGX_MAX_PROCESSES 1024 + +#define NGX_PROCESS_RESPAWN -1 +#define NGX_PROCESS_NORESPAWN -2 +#define NGX_PROCESS_DETACHED -3 + + +ngx_int_t ngx_spawn_process(ngx_cycle_t *cycle, + ngx_spawn_proc_pt proc, void *data, + char *name, ngx_int_t respawn); +ngx_int_t ngx_exec(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx); +void ngx_signal_processes(ngx_cycle_t *cycle, ngx_int_t signal); +void ngx_respawn_processes(ngx_cycle_t *cycle); +void ngx_process_get_status(void); + +extern ngx_int_t ngx_respawn; +extern ngx_uint_t ngx_last_process; +extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES]; #endif /* _NGX_PROCESS_H_INCLUDED_ */