[systemd-commits] 5 commits - configure.ac DISTRO_PORTING Makefile.am man/systemd.special.xml units/basic.target.m4 units/graphical.target.m4 units/multi-user.target.m4
Lennart Poettering
lennart at kemper.freedesktop.org
Mon May 17 10:43:05 PDT 2010
DISTRO_PORTING | 29 +++
Makefile.am | 5
configure.ac | 8
man/systemd.special.xml | 373 +++++++++++++++++++++++++++++++++++++++------
units/basic.target.m4 | 1
units/graphical.target.m4 | 1
units/multi-user.target.m4 | 1
7 files changed, 362 insertions(+), 56 deletions(-)
New commits:
commit 705dbf3aa3e95a4e591dcbc79774708d71b0e2e8
Author: Lennart Poettering <lennart at poettering.net>
Date: Mon May 17 19:42:57 2010 +0200
units: make sure to ship units/remote-fs.target.m4 in tarball
diff --git a/Makefile.am b/Makefile.am
index 3b54699..627538d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -101,6 +101,7 @@ EXTRA_DIST = \
units/getty at .service.m4 \
units/graphical.target.m4 \
units/multi-user.target.m4 \
+ units/remote-fs.target.m4 \
units/systemd-initctl.service.in \
units/systemd-logger.service.in \
units/syslog.target.in \
@@ -361,7 +362,9 @@ CLEANFILES = \
units/basic.target \
units/getty at .service \
units/graphical.target \
- units/multi-user.target
+ units/multi-user.target \
+ units/remote-fs.target \
+ units/session/remote-fs.target
if HAVE_XSLTPROC
man/%.5 man/%.7: man/%.xml
commit 50321ee3ef31b540e78bb767c3935763b96ea581
Author: Lennart Poettering <lennart at poettering.net>
Date: Mon May 17 19:37:49 2010 +0200
units: add a couple of Conflicts to make boot targets exclusive
diff --git a/units/basic.target.m4 b/units/basic.target.m4
index c31a8f6..5053df4 100644
--- a/units/basic.target.m4
+++ b/units/basic.target.m4
@@ -21,6 +21,7 @@
Description=Basic System
Requires=local-fs.target swap.target sockets.target
After=local-fs.target swap.target sockets.target
+Conflicts=emergency.service
m4_dnl
m4_ifdef(`TARGET_FEDORA',
m4_dnl Hook in Fedora's /etc/rc.d/rc.sysinit
diff --git a/units/graphical.target.m4 b/units/graphical.target.m4
index cb8e811..aaed4a5 100644
--- a/units/graphical.target.m4
+++ b/units/graphical.target.m4
@@ -21,6 +21,7 @@
Description=Graphical Interface
Requires=multi-user.target
After=multi-user.target
+Conflicts=rescue.target
m4_dnl
m4_ifdef(`TARGET_FEDORA',
m4_dnl On Fedora Runlevel 5 is graphical login
diff --git a/units/multi-user.target.m4 b/units/multi-user.target.m4
index b7f5f15..a49cfb9 100644
--- a/units/multi-user.target.m4
+++ b/units/multi-user.target.m4
@@ -21,6 +21,7 @@
Description=Multi-User
Requires=basic.target
After=basic.target
+Conflicts=rescue.target
m4_dnl
m4_ifdef(`TARGET_FEDORA',
m4_dnl On Fedora Runlevel 3 is multi-user
commit bd3d19a4ea3b007bea4c94213cafd5dc37ce7a3d
Author: Lennart Poettering <lennart at poettering.net>
Date: Mon May 17 19:37:21 2010 +0200
man: complete service.special(7) man page
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
index 3f9286d..e81e99e 100644
--- a/man/systemd.special.xml
+++ b/man/systemd.special.xml
@@ -48,22 +48,38 @@
</refnamediv>
<refsynopsisdiv>
+ <para><filename>basic.target</filename></para>
+ <para><filename>ctrl-alt-del.target</filename></para>
+ <para><filename>default.target</filename></para>
<para><filename>emergency.service</filename></para>
+ <para><filename>graphical.target</filename></para>
+ <para><filename>halt.target</filename></para>
+ <para><filename>kbrequest.target</filename></para>
<para><filename>local-fs.target</filename></para>
+ <para><filename>multi-user.target</filename></para>
<para><filename>network.target</filename></para>
<para><filename>nss-lookup.target</filename></para>
+ <para><filename>poweroff.target</filename></para>
+ <para><filename>reboot.target</filename></para>
<para><filename>remote-fs.target</filename></para>
+ <para><filename>rescue.target</filename></para>
<para><filename>rpcbind.target</filename></para>
<para><filename>rtc-set.target</filename></para>
+ <para><filename>runlevel0.target</filename>,
+ <filename>runlevel0.target</filename>,
+ <filename>runlevel1.target</filename>,
+ <filename>runlevel2.target</filename>,
+ <filename>runlevel3.target</filename>,
+ <filename>runlevel4.target</filename>,
+ <filename>runlevel5.target</filename>,
+ <filename>runlevel6.target</filename></para>
<para><filename>shutdown.target</filename></para>
<para><filename>sigpwr.target</filename></para>
<para><filename>sockets.target</filename></para>
<para><filename>swap.target</filename></para>
<para><filename>syslog.target</filename></para>
- <para><filename>systemd-initctl.service</filename></para>
- <para><filename>systemd-initctl.socket</filename></para>
- <para><filename>systemd-logger.service</filename></para>
- <para><filename>systemd-logger.socket</filename></para>
+ <para><filename>systemd-initctl.service</filename>, <filename>systemd-initctl.socket</filename></para>
+ <para><filename>systemd-logger.service</filename>, <filename>systemd-logger.socket</filename></para>
</refsynopsisdiv>
<refsect1>
@@ -79,6 +95,58 @@
<variablelist>
<varlistentry>
+ <term><filename>basic.target</filename></term>
+ <listitem>
+ <para>A special target unit
+ covering early boot-up.</para>
+ <para>systemd automatically
+ adds dependencies of the types
+ Requires and After for this
+ 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>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>ctrl-alt-del.target</filename></term>
+ <listitem>
+ <para>systemd starts this
+ target whenever
+ Control+Alt+Del is pressed on
+ the console. Usually this
+ should be aliased (symlinked)
+ to
+ <filename>reboot.target</filename>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>default.target</filename></term>
+ <listitem>
+ <para>The default unit systemd
+ starts at bootup. Usually this
+ should be aliased (symlinked)
+ to
+ <filename>multi-user.target</filename>
+ or
+ <filename>graphical.target</filename>.</para>
+ <para>The default unit systemd
+ starts at bootup can be
+ overriden with the
+ <varname>systemd.default=</varname>
+ kernel command line option.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><filename>emergency.service</filename></term>
<listitem>
<para>A special service unit
@@ -93,16 +161,55 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><filename>graphical.target</filename></term>
+ <listitem>
+ <para>A special target unit
+ for setting up a graphical
+ login screen. This pulls in
+ <filename>multi-user.target</filename>.</para>
+
+ <para>Units that are needed
+ for graphical login shall add
+ Wants dependencies for their
+ unit to this unit (or
+ <filename>multi-user.target</filename>)
+ during installation.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>halt.target</filename></term>
+ <listitem>
+ <para>A special target unit
+ for shutting down and halting the system.</para>
+
+ <para>Applications wanting to
+ halt the system should start
+ this unit.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>kbrequest.target</filename></term>
+ <listitem>
+ <para>systemd starts this
+ target whenever Alt+ArrowUp is
+ pressed on the console. This
+ is a good candidate to be
+ aliased (symlinked) to
+ <filename>rescue.target</filename>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><filename>local-fs.target</filename></term>
<listitem>
<para>systemd automatically
adds dependencies of type
After to all mount units that
- refer to local mount
- points. In addition, systemd
- adds dependencies of type
- Wants to those mounts listed
- in
+ refer to local mount points
+ for this target unit. In
+ addition, systemd adds
+ dependencies of type Wants to
+ this target unit for those
+ mounts listed in
<filename>/etc/fstab</filename>
that have the
<literal>auto</literal> and
@@ -111,21 +218,39 @@
<para>systemd automatically
adds dependencies of type
- After to this target unit for
- all SysV init scripts with an
- LSB header referring to the
+ After for this target unit to
+ all SysV init script service
+ units with an LSB header
+ referring to the
<literal>$local_fs</literal>
facility.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><filename>multi-user.target</filename></term>
+ <listitem>
+ <para>A special target unit
+ for setting up a multi-user
+ system (non-graphical). This
+ is pulled in by
+ <filename>graphical.target</filename>.</para>
+
+ <para>Units that are needed
+ for a multi-user system shall
+ add Wants dependencies to
+ this unit for their unit during
+ installation.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><filename>network.target</filename></term>
<listitem>
<para>systemd automatically
adds dependencies of type
- After to this target unit for
- all SysV init scripts with an
- LSB header referring to the
+ After for this target unit to
+ all SysV init script service
+ units with an LSB header
+ referring to the
<literal>$network</literal>
facility.</para>
</listitem>
@@ -135,34 +260,83 @@
<listitem>
<para>systemd automatically
adds dependencies of type
- After to this target unit for
- all SysV init scripts with an
- LSB header referring to the
+ After for this target unit to
+ all SysV init script service
+ units with an LSB header
+ referring to the
<literal>$named</literal>
facility.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><filename>poweroff.target</filename></term>
+ <listitem>
+ <para>A special target unit
+ for shutting down and powering off the system.</para>
+
+ <para>Applications wanting to
+ power off the system should start
+ this unit.</para>
+
+ <para><filename>runlevel0.target</filename>
+ is an alias for this target
+ unit, for compatibility with SysV.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>reboot.target</filename></term>
+ <listitem>
+ <para>A special target unit
+ for shutting down and rebooting the system.</para>
+
+ <para>Applications wanting to
+ reboot the system should start
+ this unit.</para>
+
+ <para><filename>runlevel6.target</filename>
+ is an alias for this target
+ unit, for compatibility with SysV.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><filename>remote-fs.target</filename></term>
<listitem>
- <para>Similar to <filename>local-fs.target</filename>, but for remote mount points.</para>
+ <para>Similar to
+ <filename>local-fs.target</filename>,
+ but for remote mount
+ points.</para>
+
<para>systemd automatically
adds dependencies of type
- After to this target unit for
- all SysV init scripts with an
- LSB header referring to the
+ After for this target unit to
+ all SysV init script service
+ units with an LSB header
+ referring to the
<literal>$remote-fs</literal>
facility.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><filename>rescue.target</filename></term>
+ <listitem>
+ <para>A special target unit
+ for setting up the base system
+ and a rescue shell.</para>
+
+ <para><filename>runlevel1.target</filename>
+ is an alias for this target
+ unit, for compatibility with SysV.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><filename>rpcbind.target</filename></term>
<listitem>
<para>systemd automatically
adds dependencies of type
- After to this target unit for
- all SysV init scripts with an
- LSB header referring to the
+ After for this target unit to
+ all SysV init script service
+ units with an LSB header
+ referring to the
<literal>$rpcbind</literal>
facility.</para>
</listitem>
@@ -172,14 +346,108 @@
<listitem>
<para>systemd automatically
adds dependencies of type
- After to this target unit for
- all SysV init scripts with an
- LSB header referring to the
+ After for this target unit to
+ all SysV init script service
+ units with an LSB header
+ referring to the
<literal>$time</literal>
facility.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><filename>runlevel0.target</filename></term>
+ <listitem>
+ <para>This is a target that is
+ called whever the SysV
+ compatibility code asks for
+ runlevel 0. This is an alias
+ for
+ <filename>poweroff.target</filename>,
+ for compatibility with
+ SysV.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>runlevel1.target</filename></term>
+ <listitem>
+ <para>This is a target that is
+ called whever the SysV
+ compatibility code asks for
+ runlevel 1. This is an alias
+ for
+ <filename>rescue.target</filename>,
+ for compatibility with
+ SysV.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>runlevel2.target</filename></term>
+ <listitem>
+ <para>This is a target that is
+ called whever the SysV
+ compatibility code asks for
+ runlevel 2. It is a good idea
+ to make this an alias for
+ (i.e. symlink to)
+ <filename>multi-user.target</filename>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>runlevel3.target</filename></term>
+ <listitem>
+ <para>This is a target that is
+ called whever the SysV
+ compatibility code asks for
+ runlevel 3. It is a good idea
+ to make this an alias for
+ (i.e. symlink to)
+ <filename>multi-user.target</filename>
+ or
+ <filename>graphical.target</filename>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>runlevel4.target</filename></term>
+ <listitem>
+ <para>This is a target that is
+ called whever the SysV
+ compatibility code asks for
+ runlevel 4. It is a good idea
+ to make this an alias for
+ (i.e. symlink to)
+ <filename>multi-user.target</filename>
+ or
+ <filename>graphical.target</filename>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>runlevel5.target</filename></term>
+ <listitem>
+ <para>This is a target that is
+ called whever the SysV
+ compatibility code asks for
+ runlevel 5. It is a good idea
+ to make this an alias for
+ (i.e. symlink to)
+ <filename>multi-user.target</filename>
+ or
+ <filename>graphical.target</filename>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><filename>runlevel6.target</filename></term>
+ <listitem>
+ <para>This is a target that is
+ called whever the SysV
+ compatibility code asks for
+ runlevel 6. This is an alias
+ for
+ <filename>reboot.target</filename>,
+ for compatibility with
+ SysV.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><filename>shutdown.target</filename></term>
<listitem>
<para>A special target unit
@@ -188,17 +456,18 @@
<para>Services that shall be
terminated on system shutdown
- shall add Wants dependencies
- from this unit to their
- service unit during
+ shall add Conflicts
+ dependencies to this unit for
+ their service unit during
installation.</para>
<para>systemd automatically
adds dependencies of type
Conflicts to this target unit
- for all SysV init scripts that
- shall be terminated in SysV
- runlevels 0 or 6.</para>
+ for all SysV init script
+ service units that shall be
+ terminated in SysV runlevels 0
+ or 6.</para>
</listitem>
</varlistentry>
<varlistentry>
@@ -208,7 +477,7 @@
started when systemd receives
the SIGPWR process signal,
which is normally sent by the
- kernel or UPS daemons when the
+ kernel or UPS daemons when
power fails.</para>
</listitem>
</varlistentry>
@@ -221,8 +490,8 @@
<para>Services that can be
socket-activated shall add
- Wants dependencies from this
- unit to their socket unit
+ Wants dependencies to this
+ unit for their socket unit
during installation.</para>
</listitem>
</varlistentry>
@@ -240,9 +509,10 @@
<listitem>
<para>systemd automatically
adds dependencies of type
- After to this target unit for
- all SysV init scripts with an
- LSB header referring to the
+ After for this target unit to
+ all SysV init script service
+ units with an LSB header
+ referring to the
<literal>$syslog</literal>
facility.</para>
@@ -250,9 +520,10 @@
ensure that this target pulls
in a service unit with the
name or alias of
- <filename>@SPECIAL_SYSLOG_NAME@</filename> (or a
- socket unit that activates
- this service).</para>
+ <filename>@SPECIAL_SYSLOG_SERVICE@</filename>
+ (or a socket unit that
+ activates this
+ service).</para>
</listitem>
</varlistentry>
<varlistentry>
@@ -279,10 +550,10 @@
<varlistentry>
<term><filename>systemd-logger.service</filename></term>
<listitem>
- <para>This is used internally
+ <para>This is internally used
by systemd to provide syslog
- logging to started
- processes.</para>
+ logging to the processes it
+ maintains.</para>
<para>This is a
socket-activated service, see
<filename>system-logger.socket</filename>.</para>
@@ -293,7 +564,14 @@
<listitem>
<para>Socket activation unit
for
- <filename>system-logger.service</filename>.</para>
+ <filename>system-logger.service</filename>. systemd
+ will automatically add
+ dependencies of types Requires
+ and After to all units that
+ have been configured for
+ stdout or stderr to be
+ connected to syslog or the
+ kernel log buffer.</para>
</listitem>
</varlistentry>
</variablelist>
@@ -305,6 +583,7 @@
<para>When systemd runs as a service instance, the
following special units are available, which have
similar definitions as their system counterparts:
+ <filename>default.target</filename>,
<filename>local-fs.target</filename>,
<filename>remote-fs.target</filename>,
<filename>shutdown.target</filename>,
commit b6c2bf61c5de1bb0c4996b0be016d55877d9688c
Author: Lennart Poettering <lennart at poettering.net>
Date: Mon May 17 19:36:22 2010 +0200
build-sys: fix --distro= configure explations
diff --git a/configure.ac b/configure.ac
index 8636262..1483fcd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -216,13 +216,13 @@ case $with_distro in
;;
other)
AS_IF([test "x$with_sysvinit_path" = "x"],
- [AC_MSG_ERROR([With --distro=none, you must pass --with-sysvinit-path= to configure])])
+ [AC_MSG_ERROR([With --distro=other, you must pass --with-sysvinit-path= to configure])])
AS_IF([test "x$with_sysvrcd_path" = "x"],
- [AC_MSG_ERROR([With --distro=none, you must pass --with-sysvrcd-path= to configure])])
+ [AC_MSG_ERROR([With --distro=other, you must pass --with-sysvrcd-path= to configure])])
AS_IF([test "x$with_dbus_service" = "x"],
- [AC_MSG_ERROR([With --distro=none, you must pass --with-dbus-service= to configure])])
+ [AC_MSG_ERROR([With --distro=other, you must pass --with-dbus-service= to configure])])
AS_IF([test "x$with_syslog_service" = "x"],
- [AC_MSG_ERROR([With --distro=none, you must pass --with-syslog-service= to configure])])
+ [AC_MSG_ERROR([With --distro=other, you must pass --with-syslog-service= to configure])])
;;
*)
AC_MSG_ERROR([Your distribution (${with_distro}) is not yet supported, SysV init scripts could not be found! (patches welcome); you can specify --with-distro=other to skip this check])
commit 1486dbe1c6510376a900c8c99f8bc032c8fa9cdb
Author: Lennart Poettering <lennart at poettering.net>
Date: Mon May 17 19:35:36 2010 +0200
docs: update DISTRO_PORTING a little
diff --git a/DISTRO_PORTING b/DISTRO_PORTING
index 4190538..59e4e92 100644
--- a/DISTRO_PORTING
+++ b/DISTRO_PORTING
@@ -1,5 +1,6 @@
Porting systemd To New Distributions
+HOWTO:
You need to make the follow changes to adapt systemd to your
distribution:
@@ -22,15 +23,35 @@ Porting systemd To New Distributions
and you should be able to find the places where you need to
add/change things.
- 4) Try it out.
+ 4) Try it out. Play around with 'systemd --test
+ --running-as=init' for a test run of systemd without
+ booting. This will read the unit files and print the initial
+ transaction it would execute during boot-up. This will also
+ inform you about ordering loops and suchlike.
CONTRIBUTING UPSTREAM:
-
We are interested in merging your changes upstream, if they
are for a big, and well-known distribution. Unfortunately we
don't have the time and resources to maintain
distribution-specific patches for all distributions on the
- planet, hence please do not send us patches that adds systemd
- support to non-mainstream or niche distributions.
+ planet, hence please do not send us patches that add systemd
+ support for non-mainstream or niche distributions.
Thank you for understanding.
+
+BE CONSIDERATE:
+ We'd like to keep differences between the distributions
+ minimal. This both simplifies our maintainance work, as well
+ as it helps administrators to move from one distribution to
+ another.
+
+ Hence we'd like to ask you to keep your changes minimal, and
+ not rename any units without a very good reason (if you need a
+ particular name for compatibility reasons, consider using
+ alias names via symlinks). Before you make changes that change
+ semantics from upstream, please talk to us!
+
+ In SysV almost every distribution uses a different
+ nomenclature and different locations for the boot-up
+ scripts. We'd like to avoid chaos like that with systemd right
+ from the beginning. So please, be considerate!
More information about the systemd-commits
mailing list