mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
unit: replace remote-fs-setup.target by network-online.target
https://bugzilla.redhat.com/show_bug.cgi?id=787314
This commit is contained in:
parent
78a0460588
commit
0c17fbce55
@ -355,8 +355,8 @@ dist_systemunit_DATA = \
|
||||
units/initrd-root-fs.target \
|
||||
units/remote-fs.target \
|
||||
units/remote-fs-pre.target \
|
||||
units/remote-fs-setup.target \
|
||||
units/network.target \
|
||||
units/network-online.target \
|
||||
units/nss-lookup.target \
|
||||
units/nss-user-lookup.target \
|
||||
units/hibernate.target \
|
||||
|
@ -71,6 +71,7 @@
|
||||
<filename>local-fs-pre.target</filename>,
|
||||
<filename>multi-user.target</filename>,
|
||||
<filename>network.target</filename>,
|
||||
<filename>network-online.target</filename>,
|
||||
<filename>nss-lookup.target</filename>,
|
||||
<filename>nss-user-lookup.target</filename>,
|
||||
<filename>paths.target</filename>,
|
||||
@ -79,7 +80,6 @@
|
||||
<filename>reboot.target</filename>,
|
||||
<filename>remote-fs.target</filename>,
|
||||
<filename>remote-fs-pre.target</filename>,
|
||||
<filename>remote-fs-setup.target</filename>,
|
||||
<filename>rescue.target</filename>,
|
||||
<filename>initrd-root-fs.target</filename>,
|
||||
<filename>rpcbind.target</filename>,
|
||||
@ -387,6 +387,67 @@
|
||||
section.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>network-online.target</filename></term>
|
||||
<listitem>
|
||||
<para>Units that strictly
|
||||
require a configured network
|
||||
connection should pull in
|
||||
<filename>network-online.target</filename>
|
||||
(via a
|
||||
<varname>Wants=</varname> type
|
||||
dependency) and order
|
||||
themselves after it. This
|
||||
target unit is intended to
|
||||
pull in a service that delays
|
||||
further execution until the
|
||||
network is sufficiently set
|
||||
up. What precisely this
|
||||
requires is left to the
|
||||
implementation of the network
|
||||
managing service.</para>
|
||||
|
||||
<para>Note the distinction
|
||||
between this unit and
|
||||
<filename>network.target</filename>. This
|
||||
unit is an active unit
|
||||
(i.e. pulled in by the
|
||||
consumer rather than the
|
||||
provider of this
|
||||
functionality) and pulls in a
|
||||
service which possibly adds
|
||||
substantial delays to further
|
||||
execution. In contrast,
|
||||
<filename>network.target</filename>
|
||||
is a passive unit (i.e. pulled
|
||||
in by the provider of the
|
||||
functionality, rather than the
|
||||
consumer) that usually does
|
||||
not delay execution
|
||||
much. Usually,
|
||||
<filename>network.target</filename>
|
||||
is part of the boot of most
|
||||
systems, while
|
||||
<filename>network-online.target</filename>
|
||||
is not, except when at least
|
||||
one unit requires it. Also see
|
||||
<ulink
|
||||
url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
|
||||
Services After the Network is
|
||||
up</ulink> for more
|
||||
information.</para>
|
||||
|
||||
<para>All mount units for
|
||||
remote network file systems
|
||||
automatically pull in this
|
||||
unit, and order themselves
|
||||
after it. Note that networking
|
||||
daemons that simply provide
|
||||
functionality to other hosts
|
||||
generally don't need to pull
|
||||
this in.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>paths.target</filename></term>
|
||||
<listitem>
|
||||
@ -458,29 +519,6 @@
|
||||
facility.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>remote-fs-setup.target</filename></term>
|
||||
<listitem>
|
||||
<para>This target unit is
|
||||
automatically pulled in (by a
|
||||
<varname>Wants=</varname> type
|
||||
dependency) by all remote
|
||||
mount points. It can be used
|
||||
to run certain units when at
|
||||
least one remote file system
|
||||
is to be mounted. Note that
|
||||
this target is not ordered
|
||||
against the remote mounts, use
|
||||
<filename>remote-fs-pre.target</filename>
|
||||
for that (see below).</para>
|
||||
|
||||
<para>Again, this target unit
|
||||
is <emphasis>not</emphasis>
|
||||
suitable for ordering, it is
|
||||
only useful for pulling in
|
||||
other units.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>rescue.target</filename></term>
|
||||
<listitem>
|
||||
@ -812,6 +850,26 @@
|
||||
<varlistentry>
|
||||
<term><filename>network.target</filename></term>
|
||||
<listitem>
|
||||
<para>This unit is supposed to
|
||||
indicate when network
|
||||
functionality is available,
|
||||
but it is only very weakly
|
||||
defined what that is supposed
|
||||
to mean, with one exception:
|
||||
at shutdown, a unit that is
|
||||
ordered after
|
||||
<filename>network.target</filename>
|
||||
will be stopped before the
|
||||
network -- to whatever level
|
||||
it might be set up then -- is
|
||||
shut down. Also see <ulink
|
||||
url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
|
||||
Services After the Network is
|
||||
up</ulink> for more
|
||||
information. Also see
|
||||
<filename>network-online.target</filename>
|
||||
described above.</para>
|
||||
|
||||
<para>systemd automatically
|
||||
adds dependencies of type
|
||||
<varname>After=</varname> for
|
||||
@ -821,15 +879,6 @@
|
||||
<literal>$network</literal>
|
||||
facility.</para>
|
||||
|
||||
<para>This unit is supposed to
|
||||
indicate when the network is
|
||||
"up", but it is only very
|
||||
loosely defined what that is
|
||||
supposed to mean. Also see <ulink
|
||||
url="http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget">Running
|
||||
Services After the Network is
|
||||
up</ulink> for more
|
||||
information.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
|
@ -439,9 +439,9 @@ static int mount_add_quota_links(Mount *m) {
|
||||
}
|
||||
|
||||
static int mount_add_default_dependencies(Mount *m) {
|
||||
int r;
|
||||
const char *after, *after2, *online;
|
||||
MountParameters *p;
|
||||
const char *after, *after2, *setup;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
|
||||
@ -459,11 +459,11 @@ static int mount_add_default_dependencies(Mount *m) {
|
||||
if (mount_is_network(p)) {
|
||||
after = SPECIAL_REMOTE_FS_PRE_TARGET;
|
||||
after2 = SPECIAL_NETWORK_TARGET;
|
||||
setup = SPECIAL_REMOTE_FS_SETUP_TARGET;
|
||||
online = SPECIAL_NETWORK_ONLINE_TARGET;
|
||||
} else {
|
||||
after = SPECIAL_LOCAL_FS_PRE_TARGET;
|
||||
after2 = NULL;
|
||||
setup = NULL;
|
||||
online = NULL;
|
||||
}
|
||||
|
||||
r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, NULL, true);
|
||||
@ -476,8 +476,8 @@ static int mount_add_default_dependencies(Mount *m) {
|
||||
return r;
|
||||
}
|
||||
|
||||
if (setup) {
|
||||
r = unit_add_dependency_by_name(UNIT(m), UNIT_WANTS, setup, NULL, true);
|
||||
if (online) {
|
||||
r = unit_add_two_dependencies_by_name(UNIT(m), UNIT_WANTS, UNIT_AFTER, online, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
@ -54,8 +54,8 @@
|
||||
#define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target"
|
||||
#define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_fs */
|
||||
#define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
|
||||
#define SPECIAL_REMOTE_FS_SETUP_TARGET "remote-fs-setup.target"
|
||||
#define SPECIAL_SWAP_TARGET "swap.target"
|
||||
#define SPECIAL_NETWORK_ONLINE_TARGET "network-online.target"
|
||||
#define SPECIAL_BASIC_TARGET "basic.target"
|
||||
|
||||
/* LSB compatibility */
|
||||
|
@ -210,8 +210,9 @@ static int add_mount(
|
||||
bool automount,
|
||||
bool isbind,
|
||||
const char *pre,
|
||||
const char *pre2,
|
||||
const char *online,
|
||||
const char *post,
|
||||
const char *setup,
|
||||
const char *source) {
|
||||
char _cleanup_free_
|
||||
*name = NULL, *unit = NULL, *lnk = NULL, *device = NULL,
|
||||
@ -267,10 +268,17 @@ static int add_mount(
|
||||
"After=%s\n",
|
||||
pre);
|
||||
|
||||
if (setup)
|
||||
if (pre2)
|
||||
fprintf(f,
|
||||
"After=%s\n",
|
||||
pre2);
|
||||
|
||||
if (online)
|
||||
fprintf(f,
|
||||
"After=%s\n"
|
||||
"Wants=%s\n",
|
||||
setup);
|
||||
online,
|
||||
online);
|
||||
|
||||
fprintf(f,
|
||||
"Conflicts=" SPECIAL_UMOUNT_TARGET "\n"
|
||||
@ -439,7 +447,7 @@ static int parse_fstab(const char *prefix, bool initrd) {
|
||||
k = add_swap(what, me);
|
||||
else {
|
||||
bool noauto, nofail, automount, isbind;
|
||||
const char *pre, *post, *setup;
|
||||
const char *pre, *pre2, *post, *online;
|
||||
|
||||
noauto = !!hasmntopt(me, "noauto");
|
||||
nofail = !!hasmntopt(me, "nofail");
|
||||
@ -449,26 +457,25 @@ static int parse_fstab(const char *prefix, bool initrd) {
|
||||
isbind = mount_is_bind(me);
|
||||
|
||||
if (initrd) {
|
||||
pre = pre2 = online = NULL;
|
||||
post = SPECIAL_INITRD_FS_TARGET;
|
||||
pre = NULL;
|
||||
setup = NULL;
|
||||
} else if (mount_in_initrd(me)) {
|
||||
pre = pre2 = online = NULL;
|
||||
post = SPECIAL_INITRD_ROOT_FS_TARGET;
|
||||
pre = NULL;
|
||||
setup = NULL;
|
||||
} else if (mount_is_network(me)) {
|
||||
post = SPECIAL_REMOTE_FS_TARGET;
|
||||
pre = SPECIAL_REMOTE_FS_PRE_TARGET;
|
||||
setup = SPECIAL_REMOTE_FS_SETUP_TARGET;
|
||||
pre2 = SPECIAL_NETWORK_TARGET;
|
||||
online = SPECIAL_NETWORK_ONLINE_TARGET;
|
||||
post = SPECIAL_REMOTE_FS_TARGET;
|
||||
} else {
|
||||
post = SPECIAL_LOCAL_FS_TARGET;
|
||||
pre = SPECIAL_LOCAL_FS_PRE_TARGET;
|
||||
setup = NULL;
|
||||
pre2 = online = NULL;
|
||||
post = SPECIAL_LOCAL_FS_TARGET;
|
||||
}
|
||||
|
||||
k = add_mount(what, where, me->mnt_type, me->mnt_opts,
|
||||
me->mnt_passno, noauto, nofail, automount,
|
||||
isbind, pre, post, setup, fstab_path);
|
||||
isbind, pre, pre2, online, post, fstab_path);
|
||||
}
|
||||
|
||||
if (k < 0)
|
||||
@ -552,7 +559,7 @@ static int parse_new_root_from_proc_cmdline(void) {
|
||||
|
||||
log_debug("Found entry what=%s where=/sysroot type=%s", what, type);
|
||||
r = add_mount(what, "/sysroot", type, opts, 0, false, false, false,
|
||||
false, NULL, SPECIAL_INITRD_ROOT_FS_TARGET, NULL, "/proc/cmdline");
|
||||
false, NULL, NULL, NULL, SPECIAL_INITRD_ROOT_FS_TARGET, "/proc/cmdline");
|
||||
|
||||
return (r < 0) ? r : 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user