#ifndef SERVICE_ANVIL_H #define SERVICE_ANVIL_H struct service_anvil_global { pid_t pid; unsigned int uid; int status_fd[2]; /* passed to child processes */ int blocking_fd[2]; /* used by master process to notify about dying processes */ int nonblocking_fd[2]; /* master process sends new log fds to anvil via this unix socket */ int log_fdpass_fd[2]; struct service_process_notify *kills; struct io *io_blocking, *io_nonblocking; unsigned int process_count; /* anvil crashed and we're now restarting it */ bool restarted; }; extern struct service_anvil_global *service_anvil_global; void service_anvil_monitor_start(struct service_list *service_list); void service_anvil_process_created(struct service_process *process); void service_anvil_process_destroyed(struct service_process *process); void service_anvil_send_log_fd(void); void service_anvil_global_init(void); void service_anvil_global_deinit(void); #endif