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:
parent
6c66575f0b
commit
674df18a32
@ -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', [], ''],
|
||||
|
@ -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>
|
||||
|
@ -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',
|
||||
|
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…
x
Reference in New Issue
Block a user