mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-27 01:55:32 +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/initrd-root-fs.target \
|
||||||
units/remote-fs.target \
|
units/remote-fs.target \
|
||||||
units/remote-fs-pre.target \
|
units/remote-fs-pre.target \
|
||||||
units/remote-fs-setup.target \
|
|
||||||
units/network.target \
|
units/network.target \
|
||||||
|
units/network-online.target \
|
||||||
units/nss-lookup.target \
|
units/nss-lookup.target \
|
||||||
units/nss-user-lookup.target \
|
units/nss-user-lookup.target \
|
||||||
units/hibernate.target \
|
units/hibernate.target \
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<filename>local-fs-pre.target</filename>,
|
<filename>local-fs-pre.target</filename>,
|
||||||
<filename>multi-user.target</filename>,
|
<filename>multi-user.target</filename>,
|
||||||
<filename>network.target</filename>,
|
<filename>network.target</filename>,
|
||||||
|
<filename>network-online.target</filename>,
|
||||||
<filename>nss-lookup.target</filename>,
|
<filename>nss-lookup.target</filename>,
|
||||||
<filename>nss-user-lookup.target</filename>,
|
<filename>nss-user-lookup.target</filename>,
|
||||||
<filename>paths.target</filename>,
|
<filename>paths.target</filename>,
|
||||||
@ -79,7 +80,6 @@
|
|||||||
<filename>reboot.target</filename>,
|
<filename>reboot.target</filename>,
|
||||||
<filename>remote-fs.target</filename>,
|
<filename>remote-fs.target</filename>,
|
||||||
<filename>remote-fs-pre.target</filename>,
|
<filename>remote-fs-pre.target</filename>,
|
||||||
<filename>remote-fs-setup.target</filename>,
|
|
||||||
<filename>rescue.target</filename>,
|
<filename>rescue.target</filename>,
|
||||||
<filename>initrd-root-fs.target</filename>,
|
<filename>initrd-root-fs.target</filename>,
|
||||||
<filename>rpcbind.target</filename>,
|
<filename>rpcbind.target</filename>,
|
||||||
@ -387,6 +387,67 @@
|
|||||||
section.</para>
|
section.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</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>
|
<varlistentry>
|
||||||
<term><filename>paths.target</filename></term>
|
<term><filename>paths.target</filename></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -458,29 +519,6 @@
|
|||||||
facility.</para>
|
facility.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</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>
|
<varlistentry>
|
||||||
<term><filename>rescue.target</filename></term>
|
<term><filename>rescue.target</filename></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -812,6 +850,26 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><filename>network.target</filename></term>
|
<term><filename>network.target</filename></term>
|
||||||
<listitem>
|
<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
|
<para>systemd automatically
|
||||||
adds dependencies of type
|
adds dependencies of type
|
||||||
<varname>After=</varname> for
|
<varname>After=</varname> for
|
||||||
@ -821,15 +879,6 @@
|
|||||||
<literal>$network</literal>
|
<literal>$network</literal>
|
||||||
facility.</para>
|
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>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
@ -439,9 +439,9 @@ static int mount_add_quota_links(Mount *m) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int mount_add_default_dependencies(Mount *m) {
|
static int mount_add_default_dependencies(Mount *m) {
|
||||||
int r;
|
const char *after, *after2, *online;
|
||||||
MountParameters *p;
|
MountParameters *p;
|
||||||
const char *after, *after2, *setup;
|
int r;
|
||||||
|
|
||||||
assert(m);
|
assert(m);
|
||||||
|
|
||||||
@ -459,11 +459,11 @@ static int mount_add_default_dependencies(Mount *m) {
|
|||||||
if (mount_is_network(p)) {
|
if (mount_is_network(p)) {
|
||||||
after = SPECIAL_REMOTE_FS_PRE_TARGET;
|
after = SPECIAL_REMOTE_FS_PRE_TARGET;
|
||||||
after2 = SPECIAL_NETWORK_TARGET;
|
after2 = SPECIAL_NETWORK_TARGET;
|
||||||
setup = SPECIAL_REMOTE_FS_SETUP_TARGET;
|
online = SPECIAL_NETWORK_ONLINE_TARGET;
|
||||||
} else {
|
} else {
|
||||||
after = SPECIAL_LOCAL_FS_PRE_TARGET;
|
after = SPECIAL_LOCAL_FS_PRE_TARGET;
|
||||||
after2 = NULL;
|
after2 = NULL;
|
||||||
setup = NULL;
|
online = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, NULL, true);
|
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;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (setup) {
|
if (online) {
|
||||||
r = unit_add_dependency_by_name(UNIT(m), UNIT_WANTS, setup, NULL, true);
|
r = unit_add_two_dependencies_by_name(UNIT(m), UNIT_WANTS, UNIT_AFTER, online, NULL, true);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -54,8 +54,8 @@
|
|||||||
#define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target"
|
#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_TARGET "remote-fs.target" /* LSB's $remote_fs */
|
||||||
#define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
|
#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_SWAP_TARGET "swap.target"
|
||||||
|
#define SPECIAL_NETWORK_ONLINE_TARGET "network-online.target"
|
||||||
#define SPECIAL_BASIC_TARGET "basic.target"
|
#define SPECIAL_BASIC_TARGET "basic.target"
|
||||||
|
|
||||||
/* LSB compatibility */
|
/* LSB compatibility */
|
||||||
|
@ -210,8 +210,9 @@ static int add_mount(
|
|||||||
bool automount,
|
bool automount,
|
||||||
bool isbind,
|
bool isbind,
|
||||||
const char *pre,
|
const char *pre,
|
||||||
|
const char *pre2,
|
||||||
|
const char *online,
|
||||||
const char *post,
|
const char *post,
|
||||||
const char *setup,
|
|
||||||
const char *source) {
|
const char *source) {
|
||||||
char _cleanup_free_
|
char _cleanup_free_
|
||||||
*name = NULL, *unit = NULL, *lnk = NULL, *device = NULL,
|
*name = NULL, *unit = NULL, *lnk = NULL, *device = NULL,
|
||||||
@ -267,10 +268,17 @@ static int add_mount(
|
|||||||
"After=%s\n",
|
"After=%s\n",
|
||||||
pre);
|
pre);
|
||||||
|
|
||||||
if (setup)
|
if (pre2)
|
||||||
fprintf(f,
|
fprintf(f,
|
||||||
|
"After=%s\n",
|
||||||
|
pre2);
|
||||||
|
|
||||||
|
if (online)
|
||||||
|
fprintf(f,
|
||||||
|
"After=%s\n"
|
||||||
"Wants=%s\n",
|
"Wants=%s\n",
|
||||||
setup);
|
online,
|
||||||
|
online);
|
||||||
|
|
||||||
fprintf(f,
|
fprintf(f,
|
||||||
"Conflicts=" SPECIAL_UMOUNT_TARGET "\n"
|
"Conflicts=" SPECIAL_UMOUNT_TARGET "\n"
|
||||||
@ -439,7 +447,7 @@ static int parse_fstab(const char *prefix, bool initrd) {
|
|||||||
k = add_swap(what, me);
|
k = add_swap(what, me);
|
||||||
else {
|
else {
|
||||||
bool noauto, nofail, automount, isbind;
|
bool noauto, nofail, automount, isbind;
|
||||||
const char *pre, *post, *setup;
|
const char *pre, *pre2, *post, *online;
|
||||||
|
|
||||||
noauto = !!hasmntopt(me, "noauto");
|
noauto = !!hasmntopt(me, "noauto");
|
||||||
nofail = !!hasmntopt(me, "nofail");
|
nofail = !!hasmntopt(me, "nofail");
|
||||||
@ -449,26 +457,25 @@ static int parse_fstab(const char *prefix, bool initrd) {
|
|||||||
isbind = mount_is_bind(me);
|
isbind = mount_is_bind(me);
|
||||||
|
|
||||||
if (initrd) {
|
if (initrd) {
|
||||||
|
pre = pre2 = online = NULL;
|
||||||
post = SPECIAL_INITRD_FS_TARGET;
|
post = SPECIAL_INITRD_FS_TARGET;
|
||||||
pre = NULL;
|
|
||||||
setup = NULL;
|
|
||||||
} else if (mount_in_initrd(me)) {
|
} else if (mount_in_initrd(me)) {
|
||||||
|
pre = pre2 = online = NULL;
|
||||||
post = SPECIAL_INITRD_ROOT_FS_TARGET;
|
post = SPECIAL_INITRD_ROOT_FS_TARGET;
|
||||||
pre = NULL;
|
|
||||||
setup = NULL;
|
|
||||||
} else if (mount_is_network(me)) {
|
} else if (mount_is_network(me)) {
|
||||||
post = SPECIAL_REMOTE_FS_TARGET;
|
|
||||||
pre = SPECIAL_REMOTE_FS_PRE_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 {
|
} else {
|
||||||
post = SPECIAL_LOCAL_FS_TARGET;
|
|
||||||
pre = SPECIAL_LOCAL_FS_PRE_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,
|
k = add_mount(what, where, me->mnt_type, me->mnt_opts,
|
||||||
me->mnt_passno, noauto, nofail, automount,
|
me->mnt_passno, noauto, nofail, automount,
|
||||||
isbind, pre, post, setup, fstab_path);
|
isbind, pre, pre2, online, post, fstab_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (k < 0)
|
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);
|
log_debug("Found entry what=%s where=/sysroot type=%s", what, type);
|
||||||
r = add_mount(what, "/sysroot", type, opts, 0, false, false, false,
|
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;
|
return (r < 0) ? r : 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user