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_ */