service.h revision 6c2ce1d5bf17b21e804a079eb0f973b7ab83e0d8
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny/* If a service process doesn't send its first status notification in
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny this many seconds, kill the process */
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny const char *extra_gids; /* comma-separated list */
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny /* all listeners, even those that aren't currently listening */
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny ARRAY_DEFINE(listeners, struct service_listener *);
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny /* number of processes currently created for this service */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce /* number of processes currently accepting new connections */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce /* max number of processes allowed */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce /* log process pipe file descriptors. */
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny /* fd that log process sees log_fd[0] as. can be used to identify
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny service name when sending commands via master_log_fd. */
aab938c5975f0e3b85c7c79a5d718e5fefed7217Simo Sorce /* status report pipe file descriptors */
7fe69bb6ec70bce439c6b975a9a0044c98ff502bSimo Sorce /* if a process fails before servicing its first request, assume it's
7fe69bb6ec70bce439c6b975a9a0044c98ff502bSimo Sorce broken and start throtting new process creations */
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny /* SERVICE_TYPE_AUTH_SOURCE: Destination service to run after
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny successful authentication. */
e76d78338026fa47dca32eaf7f5c15eabb1b951aJan Zeleny /* all processes are in use and new connections are coming */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce const char *const *child_process_env;
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce /* nonblocking log fds usd by master */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce /* passed to auth destination processes */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce /* used by master process to notify about dying processes */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce/* Create all services from settings */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorceservices_create(const struct master_settings *set,
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce const char *const *child_process_env, const char **error_r);
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce/* Destroy services */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorcevoid services_destroy(struct service_list *service_list);
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorce/* Send a signal to all processes in a given service */
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorcevoid service_signal(struct service *service, int signo);
bba1a5fd62cffcae076d1351df5a83fbc4a6ec17Simo Sorcevoid service_error(struct service *service, const char *format, ...)