chiark / gitweb /
136a5b2da6eb163cb5261d93d1a9a1f39c84b8bc
[elogind.git] / src / basic / special.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 /***
5   This file is part of systemd.
6
7   Copyright 2010 Lennart Poettering
8 ***/
9
10 #define SPECIAL_DEFAULT_TARGET "default.target"
11
12 /* Shutdown targets */
13 #define SPECIAL_UMOUNT_TARGET "umount.target"
14 /* This is not really intended to be started by directly. This is
15  * mostly so that other targets (reboot/halt/poweroff) can depend on
16  * it to bring all services down that want to be brought down on
17  * system shutdown. */
18 #define SPECIAL_SHUTDOWN_TARGET "shutdown.target"
19 #define SPECIAL_HALT_TARGET "halt.target"
20 #define SPECIAL_POWEROFF_TARGET "poweroff.target"
21 #define SPECIAL_REBOOT_TARGET "reboot.target"
22 #define SPECIAL_KEXEC_TARGET "kexec.target"
23 #define SPECIAL_EXIT_TARGET "exit.target"
24 #define SPECIAL_SUSPEND_TARGET "suspend.target"
25 #define SPECIAL_HIBERNATE_TARGET "hibernate.target"
26 #define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target"
27 #define SPECIAL_SUSPEND_THEN_HIBERNATE_TARGET "suspend-then-hibernate.target"
28
29 /* Special boot targets */
30 #define SPECIAL_RESCUE_TARGET "rescue.target"
31 #define SPECIAL_EMERGENCY_TARGET "emergency.target"
32 #define SPECIAL_MULTI_USER_TARGET "multi-user.target"
33 #define SPECIAL_GRAPHICAL_TARGET "graphical.target"
34
35 /* Early boot targets */
36 #define SPECIAL_SYSINIT_TARGET "sysinit.target"
37 #define SPECIAL_SOCKETS_TARGET "sockets.target"
38 #define SPECIAL_TIMERS_TARGET "timers.target"
39 #define SPECIAL_PATHS_TARGET "paths.target"
40 #define SPECIAL_LOCAL_FS_TARGET "local-fs.target"
41 #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
42 #define SPECIAL_INITRD_FS_TARGET "initrd-fs.target"
43 #define SPECIAL_INITRD_ROOT_DEVICE_TARGET "initrd-root-device.target"
44 #define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target"
45 #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target"       /* LSB's $remote_fs */
46 #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
47 #define SPECIAL_SWAP_TARGET "swap.target"
48 #define SPECIAL_NETWORK_ONLINE_TARGET "network-online.target"
49 #define SPECIAL_TIME_SYNC_TARGET "time-sync.target"       /* LSB's $time */
50 #define SPECIAL_BASIC_TARGET "basic.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 usecases 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_QUOTACHECK_SERVICE "systemd-quotacheck.service"
86 #define SPECIAL_QUOTAON_SERVICE "quotaon.service"
87 #define SPECIAL_REMOUNT_FS_SERVICE "systemd-remount-fs.service"
88
89 /* Services systemd relies on */
90 #define SPECIAL_DBUS_SERVICE "dbus.service"
91 #define SPECIAL_DBUS_SOCKET "dbus.socket"
92 #define SPECIAL_JOURNALD_SOCKET "systemd-journald.socket"
93 #define SPECIAL_JOURNALD_SERVICE "systemd-journald.service"
94 #define SPECIAL_TMPFILES_SETUP_SERVICE "systemd-tmpfiles-setup.service"
95
96 /* Magic init signals */
97 #define SPECIAL_KBREQUEST_TARGET "kbrequest.target"
98 #define SPECIAL_SIGPWR_TARGET "sigpwr.target"
99 #define SPECIAL_CTRL_ALT_DEL_TARGET "ctrl-alt-del.target"
100
101 /* Where we add all our system units, users and machines by default */
102 #define SPECIAL_SYSTEM_SLICE "system.slice"
103 #define SPECIAL_USER_SLICE "user.slice"
104 #define SPECIAL_MACHINE_SLICE "machine.slice"
105 #define SPECIAL_ROOT_SLICE "-.slice"
106
107 /* The scope unit systemd itself lives in. */
108 #define SPECIAL_INIT_SCOPE "init.scope"
109
110 /* The root directory. */
111 #define SPECIAL_ROOT_MOUNT "-.mount"