1
0
mirror of https://github.com/systemd/systemd.git synced 2025-02-02 13:47:27 +03:00

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:
Yu Watanabe 2022-01-28 15:30:01 +09:00 committed by Daan De Meyer
parent 6c66575f0b
commit 674df18a32
4 changed files with 40 additions and 1 deletions

View File

@ -932,7 +932,7 @@ manpages = [
['systemd-network-generator.service', '8', ['systemd-network-generator'], ''],
['systemd-networkd-wait-online.service',
'8',
['systemd-networkd-wait-online'],
['systemd-networkd-wait-online', 'systemd-networkd-wait-online@.service'],
'ENABLE_NETWORKD'],
['systemd-networkd.service', '8', ['systemd-networkd'], 'ENABLE_NETWORKD'],
['systemd-notify', '1', [], ''],

View File

@ -18,12 +18,14 @@
<refnamediv>
<refname>systemd-networkd-wait-online.service</refname>
<refname>systemd-networkd-wait-online@.service</refname>
<refname>systemd-networkd-wait-online</refname>
<refpurpose>Wait for network to come online</refpurpose>
</refnamediv>
<refsynopsisdiv>
<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>
</refsynopsisdiv>
@ -38,6 +40,17 @@
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
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>

View File

@ -220,6 +220,7 @@ in_units = [
['systemd-network-generator.service', ''],
['systemd-networkd.service', 'ENABLE_NETWORKD'],
['systemd-networkd-wait-online.service', 'ENABLE_NETWORKD'],
['systemd-networkd-wait-online@.service','ENABLE_NETWORKD'],
['systemd-nspawn@.service', ''],
['systemd-oomd.service', 'ENABLE_OOMD'],
['systemd-portabled.service', 'ENABLE_PORTABLED',

View 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