blob: 819064b93f0e3064d3dba2c0abdbdffc1517a637 [file] [log] [blame]
Igor Sysoeva6717c42002-12-23 06:29:22 +00001#ifndef _NGX_PROCESS_H_INCLUDED_
2#define _NGX_PROCESS_H_INCLUDED_
3
4
Igor Sysoev160d7742003-11-19 16:26:41 +00005typedef pid_t ngx_pid_t;
6
Igor Sysoev3c3ca172004-01-05 20:55:48 +00007typedef void (*ngx_spawn_proc_pt) (ngx_cycle_t *cycle, void *data);
8
9typedef struct {
10 ngx_pid_t pid;
11 int status;
12
13 ngx_spawn_proc_pt proc;
14 void *data;
15 char *name;
16
17 unsigned respawn:1;
Igor Sysoev630ad0c2004-04-16 05:14:16 +000018 unsigned just_respawn:1;
Igor Sysoev3c3ca172004-01-05 20:55:48 +000019 unsigned detached:1;
Igor Sysoev3c3ca172004-01-05 20:55:48 +000020 unsigned exiting:1;
Igor Sysoev993dc062004-01-13 06:39:14 +000021 unsigned exited:1;
Igor Sysoev3c3ca172004-01-05 20:55:48 +000022} ngx_process_t;
23
24
25typedef struct {
26 char *path;
27 char *name;
28 char *const *argv;
29 char *const *envp;
30} ngx_exec_ctx_t;
31
32
Igor Sysoev630ad0c2004-04-16 05:14:16 +000033#define NGX_MAX_PROCESSES 1024
Igor Sysoeva6717c42002-12-23 06:29:22 +000034
Igor Sysoev630ad0c2004-04-16 05:14:16 +000035#define NGX_PROCESS_NORESPAWN -1
36#define NGX_PROCESS_RESPAWN -2
37#define NGX_PROCESS_JUST_RESPAWN -3
38#define NGX_PROCESS_DETACHED -4
Igor Sysoev3c3ca172004-01-05 20:55:48 +000039
40
Igor Sysoevb54698b2004-02-23 20:57:12 +000041#define ngx_getpid getpid
42#define ngx_log_pid ngx_pid
Igor Sysoev3d58f8c2004-01-08 08:47:17 +000043
Igor Sysoev49783fc2004-01-13 16:43:23 +000044ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle,
Igor Sysoev3c3ca172004-01-05 20:55:48 +000045 ngx_spawn_proc_pt proc, void *data,
46 char *name, ngx_int_t respawn);
Igor Sysoev6a930452004-03-04 16:34:23 +000047ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
Igor Sysoev3c3ca172004-01-05 20:55:48 +000048void ngx_process_get_status(void);
49
Igor Sysoev25b36fe2004-02-03 16:43:54 +000050extern ngx_pid_t ngx_pid;
Igor Sysoev3c3ca172004-01-05 20:55:48 +000051extern ngx_uint_t ngx_last_process;
52extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
Igor Sysoev160d7742003-11-19 16:26:41 +000053
54
Igor Sysoeva6717c42002-12-23 06:29:22 +000055#endif /* _NGX_PROCESS_H_INCLUDED_ */