]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/basic/special.h
Merge pull request #30513 from rpigott/resolved-ede
[thirdparty/systemd.git] / src / basic / special.h
CommitLineData
db9ecf05 1/* SPDX-License-Identifier: LGPL-2.1-or-later */
c2f1db8f 2#pragma once
514f4ef5 3
514f4ef5 4#define SPECIAL_DEFAULT_TARGET "default.target"
8755dbad 5#define SPECIAL_INITRD_TARGET "initrd.target"
514f4ef5 6
f1dd0c3f
LP
7/* Shutdown targets */
8#define SPECIAL_UMOUNT_TARGET "umount.target"
514f4ef5
LP
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"
177b3ffe
LP
14#define SPECIAL_HALT_TARGET "halt.target"
15#define SPECIAL_POWEROFF_TARGET "poweroff.target"
16#define SPECIAL_REBOOT_TARGET "reboot.target"
13ffc607 17#define SPECIAL_SOFT_REBOOT_TARGET "soft-reboot.target"
177b3ffe
LP
18#define SPECIAL_KEXEC_TARGET "kexec.target"
19#define SPECIAL_EXIT_TARGET "exit.target"
6edd7d0a
LP
20#define SPECIAL_SUSPEND_TARGET "suspend.target"
21#define SPECIAL_HIBERNATE_TARGET "hibernate.target"
6524990f 22#define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target"
e68c79db 23#define SPECIAL_SUSPEND_THEN_HIBERNATE_TARGET "suspend-then-hibernate.target"
836fb00f 24#define SPECIAL_FACTORY_RESET_TARGET "factory-reset.target"
514f4ef5 25
f1dd0c3f 26/* Special boot targets */
177b3ffe
LP
27#define SPECIAL_RESCUE_TARGET "rescue.target"
28#define SPECIAL_EMERGENCY_TARGET "emergency.target"
d5d8429a
LP
29#define SPECIAL_MULTI_USER_TARGET "multi-user.target"
30#define SPECIAL_GRAPHICAL_TARGET "graphical.target"
514f4ef5 31
f1dd0c3f 32/* Early boot targets */
177b3ffe
LP
33#define SPECIAL_SYSINIT_TARGET "sysinit.target"
34#define SPECIAL_SOCKETS_TARGET "sockets.target"
e3d84721
LP
35#define SPECIAL_TIMERS_TARGET "timers.target"
36#define SPECIAL_PATHS_TARGET "paths.target"
5d4caf56 37#define SPECIAL_LOCAL_FS_TARGET "local-fs.target"
21e557ed 38#define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
700e07ff 39#define SPECIAL_INITRD_FS_TARGET "initrd-fs.target"
7163e1ca 40#define SPECIAL_INITRD_ROOT_DEVICE_TARGET "initrd-root-device.target"
9e5f0f92 41#define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target"
29a24ab2 42#define SPECIAL_INITRD_USR_FS_TARGET "initrd-usr-fs.target"
514f4ef5 43#define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_fs */
21e557ed 44#define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
514f4ef5 45#define SPECIAL_SWAP_TARGET "swap.target"
0c17fbce 46#define SPECIAL_NETWORK_ONLINE_TARGET "network-online.target"
19f8d037 47#define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */
fe934b42 48#define SPECIAL_TIME_SET_TARGET "time-set.target"
177b3ffe 49#define SPECIAL_BASIC_TARGET "basic.target"
4e1f0037 50#define SPECIAL_TPM2_TARGET "tpm2.target"
177b3ffe 51
f1dd0c3f 52/* LSB compatibility */
514f4ef5
LP
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 */
669b04a4
LP
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
7227dd81 61 * them. We need strong use cases for further additions.
669b04a4
LP
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 */
177b3ffe 82
f1dd0c3f 83/* Magic early boot services */
93a1d735 84#define SPECIAL_FSCK_SERVICE "systemd-fsck@.service"
5ff8da10 85#define SPECIAL_FSCK_ROOT_SERVICE "systemd-fsck-root.service"
2b66f48e 86#define SPECIAL_FSCK_USR_SERVICE "systemd-fsck-usr.service"
93a1d735 87#define SPECIAL_QUOTACHECK_SERVICE "systemd-quotacheck.service"
0c380104 88#define SPECIAL_QUOTAON_SERVICE "quotaon.service"
2b93b027 89#define SPECIAL_REMOUNT_FS_SERVICE "systemd-remount-fs.service"
312da637 90#define SPECIAL_VOLATILE_ROOT_SERVICE "systemd-volatile-root.service"
33b58dfb 91#define SPECIAL_UDEVD_SERVICE "systemd-udevd.service"
50072ccf
LP
92#define SPECIAL_GROWFS_SERVICE "systemd-growfs@.service"
93#define SPECIAL_GROWFS_ROOT_SERVICE "systemd-growfs-root.service"
04959faa
LP
94#define SPECIAL_PCRFS_SERVICE "systemd-pcrfs@.service"
95#define SPECIAL_PCRFS_ROOT_SERVICE "systemd-pcrfs-root.service"
760e99bb 96#define SPECIAL_HIBERNATE_RESUME_SERVICE "systemd-hibernate-resume.service"
177b3ffe 97
f1dd0c3f 98/* Services systemd relies on */
514f4ef5 99#define SPECIAL_DBUS_SERVICE "dbus.service"
8f6df3fa 100#define SPECIAL_DBUS_SOCKET "dbus.socket"
64f5002a 101#define SPECIAL_JOURNALD_SOCKET "systemd-journald.socket"
731a676c 102#define SPECIAL_JOURNALD_SERVICE "systemd-journald.service"
d71f0505 103#define SPECIAL_TMPFILES_SETUP_SERVICE "systemd-tmpfiles-setup.service"
177b3ffe 104
f1dd0c3f 105/* Magic init signals */
177b3ffe
LP
106#define SPECIAL_KBREQUEST_TARGET "kbrequest.target"
107#define SPECIAL_SIGPWR_TARGET "sigpwr.target"
108#define SPECIAL_CTRL_ALT_DEL_TARGET "ctrl-alt-del.target"
514f4ef5 109
9444b1f2 110/* Where we add all our system units, users and machines by default */
a016b922 111#define SPECIAL_SYSTEM_SLICE "system.slice"
9444b1f2
LP
112#define SPECIAL_USER_SLICE "user.slice"
113#define SPECIAL_MACHINE_SLICE "machine.slice"
4ad49000 114#define SPECIAL_ROOT_SLICE "-.slice"
efdb0237
LP
115
116/* The scope unit systemd itself lives in. */
117#define SPECIAL_INIT_SCOPE "init.scope"
11222d0f
LP
118
119/* The root directory. */
120#define SPECIAL_ROOT_MOUNT "-.mount"
0b432bdc
BB
121
122/* Special slices valid for the user instance */
123#define SPECIAL_SESSION_SLICE "session.slice"
124#define SPECIAL_APP_SLICE "app.slice"
125#define SPECIAL_BACKGROUND_SLICE "background.slice"