diff options
-rw-r--r-- | Makefile.am | 16 | ||||
-rw-r--r-- | man/systemd.special.xml.in | 37 | ||||
-rw-r--r-- | src/manager.h | 1 | ||||
-rw-r--r-- | src/service.c | 4 | ||||
-rw-r--r-- | units/.gitignore | 2 | ||||
-rw-r--r-- | units/basic.target | 14 | ||||
-rw-r--r-- | units/dev-hugepages.automount | 2 | ||||
-rw-r--r-- | units/dev-mqueue.automount | 2 | ||||
-rw-r--r-- | units/proc-sys-fs-binfmt_misc.automount | 2 | ||||
-rw-r--r-- | units/sys-kernel-debug.automount | 2 | ||||
-rw-r--r-- | units/sys-kernel-security.automount | 2 | ||||
-rw-r--r-- | units/sysinit.target.m4 (renamed from units/basic.target.m4) | 4 | ||||
-rw-r--r-- | units/systemd-initctl.socket | 1 | ||||
-rw-r--r-- | units/systemd-logger.socket | 1 |
14 files changed, 62 insertions, 28 deletions
diff --git a/Makefile.am b/Makefile.am index b255b7a1f6..28e52fee2f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -87,6 +87,7 @@ interface_DATA = \ dist_systemunit_DATA = \ units/emergency.service \ + units/basic.target \ units/getty.target \ units/halt.target \ units/local-fs.target \ @@ -119,7 +120,7 @@ dist_systemunit_DATA = \ units/var-run.mount systemunit_DATA = \ - units/basic.target \ + units/sysinit.target \ units/getty@.service \ units/graphical.target \ units/multi-user.target \ @@ -135,7 +136,7 @@ sessionunit_DATA = \ units/session/exit.service EXTRA_DIST = \ - units/basic.target.m4 \ + units/sysinit.target.m4 \ units/getty@.service.m4 \ units/graphical.target.m4 \ units/multi-user.target.m4 \ @@ -398,7 +399,7 @@ CLEANFILES = \ units/systemd-initctl.service \ units/systemd-logger.service \ units/syslog.target \ - units/basic.target \ + units/sysinit.target \ units/getty@.service \ units/graphical.target \ units/multi-user.target \ @@ -470,7 +471,7 @@ install-data-hook: $(DESTDIR)$(systemunitdir) \ $(DESTDIR)$(sessionunitdir) \ $(DESTDIR)$(systemunitdir)/sockets.target.wants \ - $(DESTDIR)$(systemunitdir)/basic.target.wants \ + $(DESTDIR)$(systemunitdir)/sysinit.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system \ $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \ @@ -516,9 +517,10 @@ install-data-hook: $(LN_S) $(systemunitdir)/getty@.service getty@tty5.service && \ $(LN_S) $(systemunitdir)/getty@.service getty@tty6.service ) ( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \ - rm -f getty.target && \ - $(LN_S) $(systemunitdir)/getty.target getty.target ) - ( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \ + rm -f getty.target remote-fs.target && \ + $(LN_S) $(systemunitdir)/getty.target getty.target && \ + $(LN_S) $(systemunitdir)/remote-fs.target remote-fs.target ) + ( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \ rm -f dev-hugepages.automount \ dev-mqueue.automount \ proc-sys-fs-binfmt_misc.automount \ diff --git a/man/systemd.special.xml.in b/man/systemd.special.xml.in index 1d9c1326b4..a2e1bb2cbd 100644 --- a/man/systemd.special.xml.in +++ b/man/systemd.special.xml.in @@ -80,6 +80,7 @@ <filename>sigpwr.target</filename>, <filename>sockets.target</filename>, <filename>swap.target</filename>, + <filename>sysinit.target</filename>, <filename>syslog.target</filename>, <filename>@SPECIAL_SYSLOG_SERVICE@</filename>, <filename>systemd-initctl.service</filename>, @@ -111,16 +112,15 @@ target unit to all SysV service units configured for runlevel 1 to 5.</para> - <para>systemd automatically - adds dependencies of the types - Wants and After for all - SysV service units configured - for runlevels that are not 0 - to 6 to this target unit. - This covers the special - boot-up runlevels some - distributions have, such as S - or b.</para> + <para>Usually this should pull + in all sockets, mount points, + swap devices and other basic + initialization necessary for + the general purpose + daemons. Most normal daemon + should have dependencies of + type After and Requires on + this unit.</para> </listitem> </varlistentry> <varlistentry> @@ -587,6 +587,23 @@ </listitem> </varlistentry> <varlistentry> + <term><filename>sysinit.target</filename></term> + <listitem> + <para>A special target unit + covering early boot-up scripts.</para> + <para>systemd automatically + adds dependencies of the types + Wants and After for all + SysV service units configured + for runlevels that are not 0 + to 6 to this target unit. + This covers the special + boot-up runlevels some + distributions have, such as S + or b.</para> + </listitem> + </varlistentry> + <varlistentry> <term><filename>@SPECIAL_SYSLOG_SERVICE@</filename></term> <listitem> <para>A special unit for the diff --git a/src/manager.h b/src/manager.h index 210e66053c..a2084e924b 100644 --- a/src/manager.h +++ b/src/manager.h @@ -108,6 +108,7 @@ struct Watch { #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" diff --git a/src/service.c b/src/service.c index 2ce95f5a9f..c276a9a276 100644 --- a/src/service.c +++ b/src/service.c @@ -58,10 +58,10 @@ static const struct { { "rc6.d", SPECIAL_RUNLEVEL6_TARGET, RUNLEVEL_DOWN }, /* SUSE style boot.d */ - { "boot.d", SPECIAL_BASIC_TARGET, RUNLEVEL_BASIC }, + { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_BASIC }, /* Debian style rcS.d */ - { "rcS.d", SPECIAL_BASIC_TARGET, RUNLEVEL_BASIC }, + { "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_BASIC }, }; #define RUNLEVELS_UP "12345" diff --git a/units/.gitignore b/units/.gitignore index 7e61543864..ea85dc081e 100644 --- a/units/.gitignore +++ b/units/.gitignore @@ -1,7 +1,7 @@ systemd-initctl.service systemd-logger.service syslog.target -basic.target +sysinit.target graphical.target multi-user.target getty@.service diff --git a/units/basic.target b/units/basic.target new file mode 100644 index 0000000000..aa94b94ad6 --- /dev/null +++ b/units/basic.target @@ -0,0 +1,14 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# See systemd.special(7) for details + +[Unit] +Description=Basic System +Requires=sysinit.target local-fs.target swap.target sockets.target +After=sysinit.target local-fs.target swap.target sockets.target +OnlyByDependency=yes diff --git a/units/dev-hugepages.automount b/units/dev-hugepages.automount index 9fef9eeb37..4e7f8ff5a9 100644 --- a/units/dev-hugepages.automount +++ b/units/dev-hugepages.automount @@ -7,7 +7,7 @@ [Unit] Description=Huge Pages File System Automount Point -Before=basic.target +Before=sysinit.target [Automount] Where=/dev/hugepages diff --git a/units/dev-mqueue.automount b/units/dev-mqueue.automount index a24ffe68f5..4df53dcaa4 100644 --- a/units/dev-mqueue.automount +++ b/units/dev-mqueue.automount @@ -7,7 +7,7 @@ [Unit] Description=POSIX Message Queue File System Automount Point -Before=basic.target +Before=sysinit.target [Automount] Where=/dev/mqueue diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount index 4e9b23b938..82369c56b3 100644 --- a/units/proc-sys-fs-binfmt_misc.automount +++ b/units/proc-sys-fs-binfmt_misc.automount @@ -7,7 +7,7 @@ [Unit] Description=Arbitrary Executable File Formats File System Automount Point -Before=basic.target +Before=sysinit.target [Automount] Where=/proc/sys/fs/binfmt_misc diff --git a/units/sys-kernel-debug.automount b/units/sys-kernel-debug.automount index 3d5b52d049..4da3f20531 100644 --- a/units/sys-kernel-debug.automount +++ b/units/sys-kernel-debug.automount @@ -7,7 +7,7 @@ [Unit] Description=Debug File System Automount Point -Before=basic.target +Before=sysinit.target [Automount] Where=/sys/kernel/debug diff --git a/units/sys-kernel-security.automount b/units/sys-kernel-security.automount index 061a5a23ad..5d8356e513 100644 --- a/units/sys-kernel-security.automount +++ b/units/sys-kernel-security.automount @@ -7,7 +7,7 @@ [Unit] Description=Security File System Automount Point -Before=basic.target +Before=sysinit.target [Automount] Where=/sys/kernel/security diff --git a/units/basic.target.m4 b/units/sysinit.target.m4 index 537ad8daf7..68c661ef02 100644 --- a/units/basic.target.m4 +++ b/units/sysinit.target.m4 @@ -8,9 +8,7 @@ # See systemd.special(7) for details [Unit] -Description=Basic System -Requires=local-fs.target swap.target sockets.target -After=local-fs.target swap.target sockets.target +Description=Systemd Initialization Conflicts=emergency.service OnlyByDependency=yes m4_dnl diff --git a/units/systemd-initctl.socket b/units/systemd-initctl.socket index fdb95deddd..af5cca202e 100644 --- a/units/systemd-initctl.socket +++ b/units/systemd-initctl.socket @@ -9,6 +9,7 @@ [Unit] Description=systemd /dev/initctl Compatibility Socket +After=sysinit.target [Socket] ListenFIFO=/dev/initctl diff --git a/units/systemd-logger.socket b/units/systemd-logger.socket index f62b582d3e..7195a9e856 100644 --- a/units/systemd-logger.socket +++ b/units/systemd-logger.socket @@ -9,6 +9,7 @@ [Unit] Description=systemd Logging Socket +After=sysinit.target [Socket] ListenStream=@/org/freedesktop/systemd1/logger |