unit: introduce wait-online@.service for specific interface
This should be useful when a host has multiple interfaces. Inspired by #22246.
This commit is contained in:
parent
6c66575f0b
commit
674df18a32
4 changed files with 40 additions and 1 deletions
|
@ -932,7 +932,7 @@ manpages = [
|
||||||
['systemd-network-generator.service', '8', ['systemd-network-generator'], ''],
|
['systemd-network-generator.service', '8', ['systemd-network-generator'], ''],
|
||||||
['systemd-networkd-wait-online.service',
|
['systemd-networkd-wait-online.service',
|
||||||
'8',
|
'8',
|
||||||
['systemd-networkd-wait-online'],
|
['systemd-networkd-wait-online', 'systemd-networkd-wait-online@.service'],
|
||||||
'ENABLE_NETWORKD'],
|
'ENABLE_NETWORKD'],
|
||||||
['systemd-networkd.service', '8', ['systemd-networkd'], 'ENABLE_NETWORKD'],
|
['systemd-networkd.service', '8', ['systemd-networkd'], 'ENABLE_NETWORKD'],
|
||||||
['systemd-notify', '1', [], ''],
|
['systemd-notify', '1', [], ''],
|
||||||
|
|
|
@ -18,12 +18,14 @@
|
||||||
|
|
||||||
<refnamediv>
|
<refnamediv>
|
||||||
<refname>systemd-networkd-wait-online.service</refname>
|
<refname>systemd-networkd-wait-online.service</refname>
|
||||||
|
<refname>systemd-networkd-wait-online@.service</refname>
|
||||||
<refname>systemd-networkd-wait-online</refname>
|
<refname>systemd-networkd-wait-online</refname>
|
||||||
<refpurpose>Wait for network to come online</refpurpose>
|
<refpurpose>Wait for network to come online</refpurpose>
|
||||||
</refnamediv>
|
</refnamediv>
|
||||||
|
|
||||||
<refsynopsisdiv>
|
<refsynopsisdiv>
|
||||||
<para><filename>systemd-networkd-wait-online.service</filename></para>
|
<para><filename>systemd-networkd-wait-online.service</filename></para>
|
||||||
|
<para><filename>systemd-networkd-wait-online@.service</filename></para>
|
||||||
<para><filename>/usr/lib/systemd/systemd-networkd-wait-online</filename></para>
|
<para><filename>/usr/lib/systemd/systemd-networkd-wait-online</filename></para>
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
|
|
||||||
|
@ -38,6 +40,17 @@
|
||||||
to be fully configured or failed, and for at least one link to be online. Here, online means that
|
to be fully configured or failed, and for at least one link to be online. Here, online means that
|
||||||
the link's operational state is equal or higher than <literal>degraded</literal>. The threshold
|
the link's operational state is equal or higher than <literal>degraded</literal>. The threshold
|
||||||
can be configured by <option>--operational-state=</option> option.</para>
|
can be configured by <option>--operational-state=</option> option.</para>
|
||||||
|
|
||||||
|
<para>The service <filename>systemd-networkd-wait-online.service</filename> invokes
|
||||||
|
<command>systemd-networkd-wait-online</command> without any options. Thus, it waits for all managed
|
||||||
|
interfaces to be configured or failed, and for at least one to be online.</para>
|
||||||
|
|
||||||
|
<para>The service <filename>systemd-networkd-wait-online@.service</filename> takes an interface
|
||||||
|
name, and invokes <command>systemd-networkd-wait-online</command> with <option>-i</option> and the
|
||||||
|
specified interface name. Thus, wait for the specified interface to be configured and online. For
|
||||||
|
example, <filename>systemd-networkd-wait-online@eth0.service</filename> waits for
|
||||||
|
<filename>eth0</filename> to be configured by <command>systemd-networkd</command> and online.
|
||||||
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
|
|
|
@ -220,6 +220,7 @@ in_units = [
|
||||||
['systemd-network-generator.service', ''],
|
['systemd-network-generator.service', ''],
|
||||||
['systemd-networkd.service', 'ENABLE_NETWORKD'],
|
['systemd-networkd.service', 'ENABLE_NETWORKD'],
|
||||||
['systemd-networkd-wait-online.service', 'ENABLE_NETWORKD'],
|
['systemd-networkd-wait-online.service', 'ENABLE_NETWORKD'],
|
||||||
|
['systemd-networkd-wait-online@.service','ENABLE_NETWORKD'],
|
||||||
['systemd-nspawn@.service', ''],
|
['systemd-nspawn@.service', ''],
|
||||||
['systemd-oomd.service', 'ENABLE_OOMD'],
|
['systemd-oomd.service', 'ENABLE_OOMD'],
|
||||||
['systemd-portabled.service', 'ENABLE_PORTABLED',
|
['systemd-portabled.service', 'ENABLE_PORTABLED',
|
||||||
|
|
25
units/systemd-networkd-wait-online@.service.in
Normal file
25
units/systemd-networkd-wait-online@.service.in
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Wait for Network Interface %i to be Configured
|
||||||
|
Documentation=man:systemd-networkd-wait-online.service(8)
|
||||||
|
DefaultDependencies=no
|
||||||
|
Conflicts=shutdown.target
|
||||||
|
Requires=systemd-networkd.service
|
||||||
|
After=systemd-networkd.service
|
||||||
|
Before=network-online.target shutdown.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart={{ROOTLIBEXECDIR}}/systemd-networkd-wait-online -i %i
|
||||||
|
RemainAfterExit=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=network-online.target
|
Loading…
Add table
Add a link
Reference in a new issue