]>
Commit | Line | Data |
---|---|---|
03467c88 | 1 | /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ |
514f4ef5 | 2 | |
c2f1db8f | 3 | #pragma once |
514f4ef5 LP |
4 | |
5 | /*** | |
6 | This file is part of systemd. | |
7 | ||
8 | Copyright 2010 Lennart Poettering | |
9 | ||
10 | systemd is free software; you can redistribute it and/or modify it | |
5430f7f2 LP |
11 | under the terms of the GNU Lesser General Public License as published by |
12 | the Free Software Foundation; either version 2.1 of the License, or | |
514f4ef5 LP |
13 | (at your option) any later version. |
14 | ||
15 | systemd is distributed in the hope that it will be useful, but | |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
5430f7f2 | 18 | Lesser General Public License for more details. |
514f4ef5 | 19 | |
5430f7f2 | 20 | You should have received a copy of the GNU Lesser General Public License |
514f4ef5 LP |
21 | along with systemd; If not, see <http://www.gnu.org/licenses/>. |
22 | ***/ | |
23 | ||
24 | #define SPECIAL_DEFAULT_TARGET "default.target" | |
25 | ||
f1dd0c3f LP |
26 | /* Shutdown targets */ |
27 | #define SPECIAL_UMOUNT_TARGET "umount.target" | |
514f4ef5 LP |
28 | /* This is not really intended to be started by directly. This is |
29 | * mostly so that other targets (reboot/halt/poweroff) can depend on | |
30 | * it to bring all services down that want to be brought down on | |
31 | * system shutdown. */ | |
32 | #define SPECIAL_SHUTDOWN_TARGET "shutdown.target" | |
177b3ffe LP |
33 | #define SPECIAL_HALT_TARGET "halt.target" |
34 | #define SPECIAL_POWEROFF_TARGET "poweroff.target" | |
35 | #define SPECIAL_REBOOT_TARGET "reboot.target" | |
36 | #define SPECIAL_KEXEC_TARGET "kexec.target" | |
37 | #define SPECIAL_EXIT_TARGET "exit.target" | |
6edd7d0a LP |
38 | #define SPECIAL_SUSPEND_TARGET "suspend.target" |
39 | #define SPECIAL_HIBERNATE_TARGET "hibernate.target" | |
6524990f | 40 | #define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target" |
514f4ef5 | 41 | |
f1dd0c3f | 42 | /* Special boot targets */ |
177b3ffe LP |
43 | #define SPECIAL_RESCUE_TARGET "rescue.target" |
44 | #define SPECIAL_EMERGENCY_TARGET "emergency.target" | |
514f4ef5 | 45 | |
f1dd0c3f | 46 | /* Early boot targets */ |
177b3ffe LP |
47 | #define SPECIAL_SYSINIT_TARGET "sysinit.target" |
48 | #define SPECIAL_SOCKETS_TARGET "sockets.target" | |
e3d84721 LP |
49 | #define SPECIAL_TIMERS_TARGET "timers.target" |
50 | #define SPECIAL_PATHS_TARGET "paths.target" | |
5d4caf56 | 51 | #define SPECIAL_LOCAL_FS_TARGET "local-fs.target" |
21e557ed | 52 | #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target" |
700e07ff | 53 | #define SPECIAL_INITRD_FS_TARGET "initrd-fs.target" |
9e5f0f92 | 54 | #define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target" |
514f4ef5 | 55 | #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_fs */ |
21e557ed | 56 | #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target" |
514f4ef5 | 57 | #define SPECIAL_SWAP_TARGET "swap.target" |
0c17fbce | 58 | #define SPECIAL_NETWORK_ONLINE_TARGET "network-online.target" |
177b3ffe LP |
59 | #define SPECIAL_BASIC_TARGET "basic.target" |
60 | ||
f1dd0c3f | 61 | /* LSB compatibility */ |
514f4ef5 LP |
62 | #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */ |
63 | #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named */ | |
64 | #define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */ | |
4466194c | 65 | #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ |
669b04a4 LP |
66 | |
67 | /* | |
68 | * Rules regarding adding further high level targets like the above: | |
69 | * | |
70 | * - Be conservative, only add more of these when we really need | |
71 | * them. We need strong usecases for further additions. | |
72 | * | |
73 | * - When there can be multiple implementations running side-by-side, | |
74 | * it needs to be a .target unit which can pull in all | |
75 | * implementations. | |
76 | * | |
77 | * - If something can be implemented with socket activation, and | |
78 | * without, it needs to be a .target unit, so that it can pull in | |
79 | * the appropriate unit. | |
80 | * | |
81 | * - Otherwise, it should be a .service unit. | |
82 | * | |
83 | * - In some cases it is OK to have both a .service and a .target | |
84 | * unit, i.e. if there can be multiple parallel implementations, but | |
85 | * only one is the "system" one. Example: syslog. | |
86 | * | |
87 | * Or to put this in other words: .service symlinks can be used to | |
88 | * arbitrate between multiple implementations if there can be only one | |
89 | * of a kind. .target units can be used to support multiple | |
90 | * implementations that can run side-by-side. | |
91 | */ | |
177b3ffe | 92 | |
f1dd0c3f | 93 | /* Magic early boot services */ |
93a1d735 LP |
94 | #define SPECIAL_FSCK_SERVICE "systemd-fsck@.service" |
95 | #define SPECIAL_QUOTACHECK_SERVICE "systemd-quotacheck.service" | |
0c380104 | 96 | #define SPECIAL_QUOTAON_SERVICE "quotaon.service" |
2b93b027 | 97 | #define SPECIAL_REMOUNT_FS_SERVICE "systemd-remount-fs.service" |
177b3ffe | 98 | |
f1dd0c3f | 99 | /* Services systemd relies on */ |
514f4ef5 | 100 | #define SPECIAL_DBUS_SERVICE "dbus.service" |
8f6df3fa | 101 | #define SPECIAL_DBUS_SOCKET "dbus.socket" |
64f5002a | 102 | #define SPECIAL_JOURNALD_SOCKET "systemd-journald.socket" |
731a676c | 103 | #define SPECIAL_JOURNALD_SERVICE "systemd-journald.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 | |
514f4ef5 LP |
110 | /* For SysV compatibility. Usually an alias for a saner target. On |
111 | * SysV-free systems this doesn't exist. */ | |
112 | #define SPECIAL_RUNLEVEL2_TARGET "runlevel2.target" | |
113 | #define SPECIAL_RUNLEVEL3_TARGET "runlevel3.target" | |
114 | #define SPECIAL_RUNLEVEL4_TARGET "runlevel4.target" | |
115 | #define SPECIAL_RUNLEVEL5_TARGET "runlevel5.target" |