Compare commits
6 Commits
5403e15337
...
412be51fe8
Author | SHA1 | Date |
---|---|---|
Yu Watanabe | 412be51fe8 | |
Yu Watanabe | c1817e2528 | |
Zbigniew Jędrzejewski-Szmek | 94c3a838da | |
Zbigniew Jędrzejewski-Szmek | 82c8bdff12 | |
Zbigniew Jędrzejewski-Szmek | 4a29c185b7 | |
Zbigniew Jędrzejewski-Szmek | dbf2801f5a |
|
@ -763,6 +763,10 @@ manpages = [
|
||||||
''],
|
''],
|
||||||
['systemd-modules-load.service', '8', ['systemd-modules-load'], 'HAVE_KMOD'],
|
['systemd-modules-load.service', '8', ['systemd-modules-load'], 'HAVE_KMOD'],
|
||||||
['systemd-mount', '1', ['systemd-umount'], ''],
|
['systemd-mount', '1', ['systemd-umount'], ''],
|
||||||
|
['systemd-network-generator.service',
|
||||||
|
'8',
|
||||||
|
['systemd-network-generator'],
|
||||||
|
'ENABLE_NETWORKD'],
|
||||||
['systemd-networkd-wait-online.service',
|
['systemd-networkd-wait-online.service',
|
||||||
'8',
|
'8',
|
||||||
['systemd-networkd-wait-online'],
|
['systemd-networkd-wait-online'],
|
||||||
|
|
|
@ -507,17 +507,17 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
<command>list-dependencies</command>
|
<command>list-dependencies</command>
|
||||||
<optional><replaceable>UNIT</replaceable></optional>
|
<optional><replaceable>UNIT</replaceable>...</optional>
|
||||||
</term>
|
</term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Shows units required and wanted by the specified
|
<para>Shows units required and wanted by the specified
|
||||||
unit. This recursively lists units following the
|
units. This recursively lists units following the
|
||||||
<varname>Requires=</varname>,
|
<varname>Requires=</varname>,
|
||||||
<varname>Requisite=</varname>,
|
<varname>Requisite=</varname>,
|
||||||
<varname>ConsistsOf=</varname>,
|
<varname>ConsistsOf=</varname>,
|
||||||
<varname>Wants=</varname>, <varname>BindsTo=</varname>
|
<varname>Wants=</varname>, <varname>BindsTo=</varname>
|
||||||
dependencies. If no unit is specified,
|
dependencies. If no units are specified,
|
||||||
<filename>default.target</filename> is implied.</para>
|
<filename>default.target</filename> is implied.</para>
|
||||||
|
|
||||||
<para>By default, only target units are recursively
|
<para>By default, only target units are recursively
|
||||||
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
<?xml version='1.0'?> <!--*-nxml-*-->
|
||||||
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||||
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||||
|
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
|
||||||
|
|
||||||
|
<refentry id="systemd-network-generator.service" conditional='ENABLE_NETWORKD'>
|
||||||
|
|
||||||
|
<refentryinfo>
|
||||||
|
<title>systemd-network-generator.service</title>
|
||||||
|
<productname>systemd</productname>
|
||||||
|
</refentryinfo>
|
||||||
|
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>systemd-network-generator.service</refentrytitle>
|
||||||
|
<manvolnum>8</manvolnum>
|
||||||
|
</refmeta>
|
||||||
|
|
||||||
|
<refnamediv>
|
||||||
|
<refname>systemd-network-generator.service</refname>
|
||||||
|
<refname>systemd-network-generator</refname>
|
||||||
|
<refpurpose>Generate network configuration from the kernel command line</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<refsynopsisdiv>
|
||||||
|
<para><filename>systemd-network-generator.service</filename></para>
|
||||||
|
<para><filename>/usr/lib/systemd/systemd-network-generator</filename></para>
|
||||||
|
</refsynopsisdiv>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Description</title>
|
||||||
|
|
||||||
|
<para><filename>systemd-network-generator.service</filename> is a system service that translates
|
||||||
|
<varname>ip=</varname> and the related settings on the kernel command line (see below) into
|
||||||
|
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||||
|
<citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, and
|
||||||
|
<citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||||
|
configuration files understood by
|
||||||
|
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||||
|
and
|
||||||
|
<citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>Files are generated in <filename>/run/systemd/network/</filename>.</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1><title>Kernel command line options</title>
|
||||||
|
<para>This tool understands the following options:</para>
|
||||||
|
|
||||||
|
<variablelist class='kernel-commandline-options'>
|
||||||
|
<varlistentry>
|
||||||
|
<term><varname>ip=</varname></term>
|
||||||
|
<term><varname>rd.route=</varname></term>
|
||||||
|
<term><varname>rd.peerdns=</varname></term>
|
||||||
|
<listitem>
|
||||||
|
<para>— translated into
|
||||||
|
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> files.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><varname>ifname=</varname></term>
|
||||||
|
<listitem>
|
||||||
|
<para>— translated into
|
||||||
|
<citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry> files.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><varname>vlan=</varname></term>
|
||||||
|
<term><varname>bond=</varname></term>
|
||||||
|
<term><varname>bridge=</varname></term>
|
||||||
|
<term><varname>bootdev=</varname></term>
|
||||||
|
<listitem>
|
||||||
|
<para>— translated into
|
||||||
|
<citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> files.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<!-- unsupported:
|
||||||
|
team=<teammaster>:<teamslaves>
|
||||||
|
bootdev=
|
||||||
|
BOOTIF=
|
||||||
|
bootdev=
|
||||||
|
bootdev=
|
||||||
|
bootdev=
|
||||||
|
-->
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
<para>See
|
||||||
|
<citerefentry project='man-pages'><refentrytitle>dracut.kernel</refentrytitle><manvolnum>7</manvolnum></citerefentry>
|
||||||
|
for option syntax and details.</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>See Also</title>
|
||||||
|
<para>
|
||||||
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||||
|
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||||
|
<citerefentry><refentrytitle>dracut</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||||
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
</refentry>
|
|
@ -61,6 +61,10 @@
|
||||||
<filename>systemd-networkd</filename> is restarted, netdev interfaces for
|
<filename>systemd-networkd</filename> is restarted, netdev interfaces for
|
||||||
which configuration was removed will not be dropped, and may need to be
|
which configuration was removed will not be dropped, and may need to be
|
||||||
cleaned up manually.</para>
|
cleaned up manually.</para>
|
||||||
|
|
||||||
|
<para><command>systemd-networkd</command> may be introspected and controlled at runtime using
|
||||||
|
<citerefentry><refentrytitle>networkctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
|
||||||
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1><title>Configuration Files</title>
|
<refsect1><title>Configuration Files</title>
|
||||||
|
@ -82,11 +86,13 @@
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>See Also</title>
|
<title>See Also</title>
|
||||||
<para>
|
<para>
|
||||||
|
<citerefentry><refentrytitle>networkctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
<citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||||
|
<citerefentry><refentrytitle>systemd-networkd-generator.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
@ -785,6 +785,8 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_error_errno(r, "Failed to get properties of %s: %s", name, bus_error_message(&error, r));
|
return log_error_errno(r, "Failed to get properties of %s: %s", name, bus_error_message(&error, r));
|
||||||
|
|
||||||
|
strv_uniq(deps); /* Sometimes a unit might have multiple deps on the other unit,
|
||||||
|
* but we still want to show it just once. */
|
||||||
*ret = TAKE_PTR(deps);
|
*ret = TAKE_PTR(deps);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1786,30 +1788,39 @@ static int list_dependencies_one(
|
||||||
}
|
}
|
||||||
|
|
||||||
static int list_dependencies(int argc, char *argv[], void *userdata) {
|
static int list_dependencies(int argc, char *argv[], void *userdata) {
|
||||||
_cleanup_strv_free_ char **units = NULL;
|
_cleanup_strv_free_ char **units = NULL, **done = NULL;
|
||||||
_cleanup_free_ char *unit = NULL;
|
char **u, **patterns;
|
||||||
const char *u;
|
|
||||||
sd_bus *bus;
|
sd_bus *bus;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (argv[1]) {
|
|
||||||
r = unit_name_mangle(argv[1], arg_quiet ? 0 : UNIT_NAME_MANGLE_WARN, &unit);
|
|
||||||
if (r < 0)
|
|
||||||
return log_error_errno(r, "Failed to mangle unit name: %m");
|
|
||||||
|
|
||||||
u = unit;
|
|
||||||
} else
|
|
||||||
u = SPECIAL_DEFAULT_TARGET;
|
|
||||||
|
|
||||||
r = acquire_bus(BUS_MANAGER, &bus);
|
r = acquire_bus(BUS_MANAGER, &bus);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
patterns = strv_skip(argv, 1);
|
||||||
|
if (strv_isempty(patterns)) {
|
||||||
|
units = strv_new(SPECIAL_DEFAULT_TARGET);
|
||||||
|
if (!units)
|
||||||
|
return log_oom();
|
||||||
|
} else {
|
||||||
|
r = expand_names(bus, patterns, NULL, &units, NULL);
|
||||||
|
if (r < 0)
|
||||||
|
return log_error_errno(r, "Failed to expand names: %m");
|
||||||
|
}
|
||||||
|
|
||||||
(void) pager_open(arg_pager_flags);
|
(void) pager_open(arg_pager_flags);
|
||||||
|
|
||||||
puts(u);
|
STRV_FOREACH(u, units) {
|
||||||
|
if (u != units)
|
||||||
|
puts("");
|
||||||
|
|
||||||
return list_dependencies_one(bus, u, 0, &units, 0);
|
puts(*u);
|
||||||
|
r = list_dependencies_one(bus, *u, 0, &done, 0);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct machine_info {
|
struct machine_info {
|
||||||
|
@ -7815,9 +7826,9 @@ static int systemctl_help(void) {
|
||||||
" help PATTERN...|PID... Show manual for one or more units\n"
|
" help PATTERN...|PID... Show manual for one or more units\n"
|
||||||
" reset-failed [PATTERN...] Reset failed state for all, one, or more\n"
|
" reset-failed [PATTERN...] Reset failed state for all, one, or more\n"
|
||||||
" units\n"
|
" units\n"
|
||||||
" list-dependencies [UNIT] Recursively show units which are required\n"
|
" list-dependencies [UNIT...] Recursively show units which are required\n"
|
||||||
" or wanted by this unit or by which this\n"
|
" or wanted by the units or by which those\n"
|
||||||
" unit is required or wanted"
|
" units are required or wanted"
|
||||||
"\n%3$sUnit File Commands:%4$s\n"
|
"\n%3$sUnit File Commands:%4$s\n"
|
||||||
" list-unit-files [PATTERN...] List installed unit files\n"
|
" list-unit-files [PATTERN...] List installed unit files\n"
|
||||||
" enable [UNIT...|PATH...] Enable one or more unit files\n"
|
" enable [UNIT...|PATH...] Enable one or more unit files\n"
|
||||||
|
@ -9116,7 +9127,7 @@ static int systemctl_main(int argc, char *argv[]) {
|
||||||
{ "link", 2, VERB_ANY, 0, enable_unit },
|
{ "link", 2, VERB_ANY, 0, enable_unit },
|
||||||
{ "revert", 2, VERB_ANY, 0, enable_unit },
|
{ "revert", 2, VERB_ANY, 0, enable_unit },
|
||||||
{ "switch-root", 2, VERB_ANY, VERB_ONLINE_ONLY, switch_root },
|
{ "switch-root", 2, VERB_ANY, VERB_ONLINE_ONLY, switch_root },
|
||||||
{ "list-dependencies", VERB_ANY, 2, VERB_ONLINE_ONLY, list_dependencies },
|
{ "list-dependencies", VERB_ANY, VERB_ANY, VERB_ONLINE_ONLY, list_dependencies },
|
||||||
{ "set-default", 2, 2, 0, set_default },
|
{ "set-default", 2, 2, 0, set_default },
|
||||||
{ "get-default", VERB_ANY, 1, 0, get_default },
|
{ "get-default", VERB_ANY, 1, 0, get_default },
|
||||||
{ "set-property", 3, VERB_ANY, VERB_ONLINE_ONLY, set_property },
|
{ "set-property", 3, VERB_ANY, VERB_ONLINE_ONLY, set_property },
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Generate network units from Kernel command line
|
Description=Generate network units from Kernel command line
|
||||||
|
Documentation=man:systemd-network-generator.service(8)
|
||||||
DefaultDependencies=no
|
DefaultDependencies=no
|
||||||
Before=network-pre.target
|
Before=network-pre.target
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue