service: ignore dependencies on $syslog and $local_fs in LSB scripts

We no longer allow early-boot init scripts, however in late boot the
syslog socket and local mounts are established anyway, so let's simplify
our dep graph a bit.

If $syslog doesn't resolve to syslog.target anymore there's no reason to
keep syslog.target around anymore. Let's remove it.

Note that many 3rd party service unit files order themselves after
syslog.target. These will be dangling dependencies now, which should be
unproblematic, however.
This commit is contained in:
Lennart Poettering
2013-01-16 21:34:09 +01:00
parent a485210ce7
commit 5d4caf5654
7 changed files with 10 additions and 59 deletions
-1
View File
@@ -291,7 +291,6 @@ dist_systemunit_DATA = \
units/quotaon.service \
units/systemd-ask-password-wall.path \
units/systemd-ask-password-console.path \
units/syslog.target \
units/systemd-udevd-control.socket \
units/systemd-udevd-kernel.socket \
units/system-update.target
-23
View File
@@ -93,7 +93,6 @@
<filename>swap.target</filename>,
<filename>sysinit.target</filename>,
<filename>syslog.socket</filename>,
<filename>syslog.target</filename>,
<filename>system-update.target</filename>,
<filename>time-sync.target</filename>,
<filename>umount.target</filename></para>
@@ -335,15 +334,6 @@
<option>auto</option> and
<option>comment=systemd.mount</option>
mount options set.</para>
<para>systemd automatically
adds dependencies of type
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>
@@ -679,19 +669,6 @@
document.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>syslog.target</filename></term>
<listitem>
<para>systemd automatically
adds dependencies of type
After for this target unit to
all SysV init script service
units with an LSB header
referring to the
<literal>$syslog</literal>
facility.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>system-update.target</filename></term>
<listitem>
+7 -9
View File
@@ -322,7 +322,8 @@ static void service_done(Unit *u) {
static char *sysv_translate_name(const char *name) {
char *r;
if (!(r = new(char, strlen(name) + sizeof(".service"))))
r = new(char, strlen(name) + sizeof(".service"));
if (!r)
return NULL;
if (endswith(name, ".sh"))
@@ -348,16 +349,12 @@ static int sysv_translate_facility(const char *name, const char *filename, char
static const char * const table[] = {
/* LSB defined facilities */
"local_fs", SPECIAL_LOCAL_FS_TARGET,
/* Due to unfortunate name selection in Mandriva,
* $network is provided by network-up which is ordered
* after network which actually starts interfaces.
* To break the loop, just ignore it */
"local_fs", NULL,
"network", SPECIAL_NETWORK_TARGET,
"named", SPECIAL_NSS_LOOKUP_TARGET,
"portmap", SPECIAL_RPCBIND_TARGET,
"remote_fs", SPECIAL_REMOTE_FS_TARGET,
"syslog", SPECIAL_SYSLOG_TARGET,
"syslog", NULL,
"time", SPECIAL_TIME_SYNC_TARGET,
};
@@ -378,8 +375,9 @@ static int sysv_translate_facility(const char *name, const char *filename, char
if (!table[i+1])
return 0;
if (!(r = strdup(table[i+1])))
return -ENOMEM;
r = strdup(table[i+1]);
if (!r)
return log_oom();
goto finish;
}
+1 -2
View File
@@ -46,7 +46,7 @@
/* Early boot targets */
#define SPECIAL_SYSINIT_TARGET "sysinit.target"
#define SPECIAL_SOCKETS_TARGET "sockets.target"
#define SPECIAL_LOCAL_FS_TARGET "local-fs.target" /* LSB's $local_fs */
#define SPECIAL_LOCAL_FS_TARGET "local-fs.target"
#define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
#define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_fs */
#define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
@@ -57,7 +57,6 @@
#define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */
#define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named */
#define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */
#define SPECIAL_SYSLOG_TARGET "syslog.target" /* LSB's $syslog */
#define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */
/*
+1 -4
View File
@@ -10,14 +10,11 @@ Description=Syslog Socket
Documentation=man:systemd.special(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/syslog
DefaultDependencies=no
Before=sockets.target syslog.target shutdown.target
Before=sockets.target shutdown.target
# Don't allow logging until the very end
Conflicts=shutdown.target
# Pull in syslog.target to tell people that /dev/log is now accessible
Wants=syslog.target
[Socket]
ListenDatagram=/run/systemd/journal/syslog
SocketMode=0666
-19
View File
@@ -1,19 +0,0 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This exists mostly for compatibility with SysV/LSB units, and
# implementations lacking socket/bus activation.
[Unit]
Description=Syslog
Documentation=man:systemd.special(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/syslog
# Avoid that we conflict with shutdown.target, so that we can stay
# until the very end and do not cancel shutdown.target if we should
# happen to be activated very late.
DefaultDependencies=no
+1 -1
View File
@@ -9,7 +9,7 @@
Description=Journal Socket
Documentation=man:systemd-journald.service(8) man:journald.conf(5)
DefaultDependencies=no
Before=sockets.target syslog.target
Before=sockets.target
# Mount and swap units need this. If this socket unit is removed by an
# isolate request the mount and and swap units would be removed too,