master
h 35 lines 1.23 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_DAEMON_SERVICE_H
4 #define NETDATA_DAEMON_SERVICE_H
5
6 #include "libnetdata/libnetdata.h"
7
8 typedef enum {
9 ABILITY_WEB_REQUESTS = (1 << 0),
10 ABILITY_STREAMING_CONNECTIONS = (1 << 1),
11 SERVICE_COLLECTORS = (1 << 2),
12 SERVICE_REPLICATION = (1 << 3),
13 SERVICE_WEB_SERVER = (1 << 4),
14 SERVICE_ACLK = (1 << 5),
15 SERVICE_HEALTH = (1 << 6),
16 SERVICE_STREAMING = (1 << 7),
17 SERVICE_STREAMING_CONNECTOR = (1 << 8),
18 SERVICE_CONTEXT = (1 << 9),
19 SERVICE_ANALYTICS = (1 << 10),
20 SERVICE_EXPORTERS = (1 << 11),
21 SERVICE_HTTPD = (1 << 12),
22 SERVICE_SYSTEMD = (1 << 13),
23 } SERVICE_TYPE;
24
25 typedef void (*force_quit_t)(void *data);
26 typedef void (*request_quit_t)(void *data);
27
28 void service_exits(void);
29 bool service_running(SERVICE_TYPE service);
30 struct service_thread *service_register(request_quit_t request_quit_callback, force_quit_t force_quit_callback, void *data);
31
32 void service_signal_exit(SERVICE_TYPE service);
33 bool service_wait_exit(SERVICE_TYPE service, usec_t timeout_ut);
34
35 #endif //NETDATA_DAEMON_SERVICE_H