chiark / gitweb /
systemctl: warn users via wall that the system goes down
[elogind.git] / src / manager.h
index 9548b0f6138764c85dbb24b062bb3f9451c77a96..5ee75d524810711e24490466bc703518cb82999c 100644 (file)
@@ -56,6 +56,7 @@ typedef enum ManagerRunningAs {
 enum WatchType {
         WATCH_INVALID,
         WATCH_SIGNAL,
+        WATCH_NOTIFY,
         WATCH_FD,
         WATCH_TIMER,
         WATCH_MOUNT,
@@ -82,6 +83,7 @@ struct Watch {
 #include "list.h"
 #include "set.h"
 #include "dbus.h"
+#include "path-lookup.h"
 
 #define SPECIAL_DEFAULT_TARGET "default.target"
 
@@ -105,9 +107,16 @@ struct Watch {
 #define SPECIAL_RPCBIND_TARGET "rpcbind.target"           /* LSB's $portmap */
 #define SPECIAL_SYSLOG_TARGET "syslog.target"             /* LSB's $syslog; Should pull in syslog.socket or syslog.service */
 #define SPECIAL_RTC_SET_TARGET "rtc-set.target"           /* LSB's $time */
-
+#define SPECIAL_DISPLAY_MANAGER_SERVICE "display-manager.service"       /* Debian's $x-display-manager */
+#define SPECIAL_MAIL_TRANSFER_AGENT_TARGET "mail-transfer-agent.target" /* Debian's $mail-{transport|transfer-agent */
 #define SPECIAL_BASIC_TARGET "basic.target"
+#define SPECIAL_SYSINIT_TARGET "sysinit.target"
 #define SPECIAL_RESCUE_TARGET "rescue.target"
+#define SPECIAL_EXIT_SERVICE "exit.service"
+#define SPECIAL_EMERGENCY_SERVICE "emergency.service"
+#define SPECIAL_HALT_TARGET "halt.target"
+#define SPECIAL_POWEROFF_TARGET "poweroff.target"
+#define SPECIAL_REBOOT_TARGET "reboot.target"
 
 #ifndef SPECIAL_DBUS_SERVICE
 #define SPECIAL_DBUS_SERVICE "dbus.service"
@@ -167,15 +176,14 @@ struct Manager {
 
         Hashmap *watch_pids;  /* pid => Unit object n:1 */
 
+        Watch notify_watch;
         Watch signal_watch;
 
         int epoll_fd;
 
         unsigned n_snapshots;
 
-        char **unit_path;
-        char **sysvinit_path;
-        char **sysvrcnd_path;
+        LookupPaths lookup_paths;
 
         char **environment;
 
@@ -213,7 +221,6 @@ struct Manager {
         char *cgroup_hierarchy;
 
         usec_t gc_queue_timestamp;
-
         int gc_marker;
         unsigned n_in_gc_queue;