]>
Commit | Line | Data |
---|---|---|
1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ | |
2 | #pragma once | |
3 | ||
4 | #define SPECIAL_DEFAULT_TARGET "default.target" | |
5 | #define SPECIAL_INITRD_TARGET "initrd.target" | |
6 | ||
7 | /* Shutdown targets */ | |
8 | #define SPECIAL_UMOUNT_TARGET "umount.target" | |
9 | /* This is not really intended to be started by directly. This is | |
10 | * mostly so that other targets (reboot/halt/poweroff) can depend on | |
11 | * it to bring all services down that want to be brought down on | |
12 | * system shutdown. */ | |
13 | #define SPECIAL_SHUTDOWN_TARGET "shutdown.target" | |
14 | #define SPECIAL_HALT_TARGET "halt.target" | |
15 | #define SPECIAL_POWEROFF_TARGET "poweroff.target" | |
16 | #define SPECIAL_REBOOT_TARGET "reboot.target" | |
17 | #define SPECIAL_SOFT_REBOOT_TARGET "soft-reboot.target" | |
18 | #define SPECIAL_KEXEC_TARGET "kexec.target" | |
19 | #define SPECIAL_EXIT_TARGET "exit.target" | |
20 | #define SPECIAL_SUSPEND_TARGET "suspend.target" | |
21 | #define SPECIAL_HIBERNATE_TARGET "hibernate.target" | |
22 | #define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target" | |
23 | #define SPECIAL_SUSPEND_THEN_HIBERNATE_TARGET "suspend-then-hibernate.target" | |
24 | #define SPECIAL_FACTORY_RESET_TARGET "factory-reset.target" | |
25 | ||
26 | /* Special boot targets */ | |
27 | #define SPECIAL_RESCUE_TARGET "rescue.target" | |
28 | #define SPECIAL_EMERGENCY_TARGET "emergency.target" | |
29 | #define SPECIAL_MULTI_USER_TARGET "multi-user.target" | |
30 | #define SPECIAL_GRAPHICAL_TARGET "graphical.target" | |
31 | ||
32 | /* Early boot targets */ | |
33 | #define SPECIAL_SYSINIT_TARGET "sysinit.target" | |
34 | #define SPECIAL_SOCKETS_TARGET "sockets.target" | |
35 | #define SPECIAL_TIMERS_TARGET "timers.target" | |
36 | #define SPECIAL_PATHS_TARGET "paths.target" | |
37 | #define SPECIAL_LOCAL_FS_TARGET "local-fs.target" | |
38 | #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target" | |
39 | #define SPECIAL_INITRD_FS_TARGET "initrd-fs.target" | |
40 | #define SPECIAL_INITRD_ROOT_DEVICE_TARGET "initrd-root-device.target" | |
41 | #define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target" | |
42 | #define SPECIAL_INITRD_USR_FS_TARGET "initrd-usr-fs.target" | |
43 | #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_fs */ | |
44 | #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target" | |
45 | #define SPECIAL_SWAP_TARGET "swap.target" | |
46 | #define SPECIAL_NETWORK_ONLINE_TARGET "network-online.target" | |
47 | #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ | |
48 | #define SPECIAL_TIME_SET_TARGET "time-set.target" | |
49 | #define SPECIAL_BASIC_TARGET "basic.target" | |
50 | #define SPECIAL_TPM2_TARGET "tpm2.target" | |
51 | ||
52 | /* LSB compatibility */ | |
53 | #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */ | |
54 | #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named */ | |
55 | #define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */ | |
56 | ||
57 | /* | |
58 | * Rules regarding adding further high level targets like the above: | |
59 | * | |
60 | * - Be conservative, only add more of these when we really need | |
61 | * them. We need strong use cases for further additions. | |
62 | * | |
63 | * - When there can be multiple implementations running side-by-side, | |
64 | * it needs to be a .target unit which can pull in all | |
65 | * implementations. | |
66 | * | |
67 | * - If something can be implemented with socket activation, and | |
68 | * without, it needs to be a .target unit, so that it can pull in | |
69 | * the appropriate unit. | |
70 | * | |
71 | * - Otherwise, it should be a .service unit. | |
72 | * | |
73 | * - In some cases it is OK to have both a .service and a .target | |
74 | * unit, i.e. if there can be multiple parallel implementations, but | |
75 | * only one is the "system" one. Example: syslog. | |
76 | * | |
77 | * Or to put this in other words: .service symlinks can be used to | |
78 | * arbitrate between multiple implementations if there can be only one | |
79 | * of a kind. .target units can be used to support multiple | |
80 | * implementations that can run side-by-side. | |
81 | */ | |
82 | ||
83 | /* Magic early boot services */ | |
84 | #define SPECIAL_FSCK_SERVICE "systemd-fsck@.service" | |
85 | #define SPECIAL_FSCK_ROOT_SERVICE "systemd-fsck-root.service" | |
86 | #define SPECIAL_FSCK_USR_SERVICE "systemd-fsck-usr.service" | |
87 | #define SPECIAL_QUOTACHECK_SERVICE "systemd-quotacheck@.service" | |
88 | #define SPECIAL_QUOTACHECK_ROOT_SERVICE "systemd-quotacheck-root.service" | |
89 | #define SPECIAL_QUOTAON_SERVICE "quotaon@.service" | |
90 | #define SPECIAL_QUOTAON_ROOT_SERVICE "quotaon-root.service" | |
91 | #define SPECIAL_REMOUNT_FS_SERVICE "systemd-remount-fs.service" | |
92 | #define SPECIAL_VOLATILE_ROOT_SERVICE "systemd-volatile-root.service" | |
93 | #define SPECIAL_UDEVD_SERVICE "systemd-udevd.service" | |
94 | #define SPECIAL_GROWFS_SERVICE "systemd-growfs@.service" | |
95 | #define SPECIAL_GROWFS_ROOT_SERVICE "systemd-growfs-root.service" | |
96 | #define SPECIAL_PCRFS_SERVICE "systemd-pcrfs@.service" | |
97 | #define SPECIAL_PCRFS_ROOT_SERVICE "systemd-pcrfs-root.service" | |
98 | #define SPECIAL_VALIDATEFS_SERVICE "systemd-validatefs@.service" | |
99 | #define SPECIAL_HIBERNATE_RESUME_SERVICE "systemd-hibernate-resume.service" | |
100 | ||
101 | /* Services systemd relies on */ | |
102 | #define SPECIAL_DBUS_SERVICE "dbus.service" | |
103 | #define SPECIAL_DBUS_SOCKET "dbus.socket" | |
104 | #define SPECIAL_JOURNALD_SOCKET "systemd-journald.socket" | |
105 | #define SPECIAL_JOURNALD_SERVICE "systemd-journald.service" | |
106 | #define SPECIAL_TMPFILES_SETUP_SERVICE "systemd-tmpfiles-setup.service" | |
107 | ||
108 | /* Magic init signals */ | |
109 | #define SPECIAL_KBREQUEST_TARGET "kbrequest.target" | |
110 | #define SPECIAL_SIGPWR_TARGET "sigpwr.target" | |
111 | #define SPECIAL_CTRL_ALT_DEL_TARGET "ctrl-alt-del.target" | |
112 | ||
113 | /* Where we add all our system units, users and machines by default */ | |
114 | #define SPECIAL_SYSTEM_SLICE "system.slice" | |
115 | #define SPECIAL_USER_SLICE "user.slice" | |
116 | #define SPECIAL_MACHINE_SLICE "machine.slice" | |
117 | #define SPECIAL_ROOT_SLICE "-.slice" | |
118 | ||
119 | /* The scope unit systemd itself lives in. */ | |
120 | #define SPECIAL_INIT_SCOPE "init.scope" | |
121 | ||
122 | /* The root directory. */ | |
123 | #define SPECIAL_ROOT_MOUNT "-.mount" | |
124 | ||
125 | /* Special slices valid for the user instance */ | |
126 | #define SPECIAL_SESSION_SLICE "session.slice" | |
127 | #define SPECIAL_APP_SLICE "app.slice" | |
128 | #define SPECIAL_BACKGROUND_SLICE "background.slice" |