[systemd-devel] Starting a service before any networking
Mark Rogers
mark at more-solutions.co.uk
Tue Sep 26 18:31:59 UTC 2023
On Tue, 26 Sept 2023 at 13:44, Mantas Mikulėnas <grawity at gmail.com> wrote:
> I think you're confusing two different states, which have similar
> indications – "administrative" up/down that you control (the "<UP>" flag,
> with nothing shown when down) and "operational" up/down that represents the
> actual interface status (the "<RUNNING>" vs "<NO_CARRIER>" flags and/or the
> "state XXX" field).
>
Yes I am, thanks for clarifying.
> "state DOWN" is *not* directly controlled by `ip link set up` – it's the
> result of the interface being operative for any other reason even though it
> is administratively <UP> (i.e. turned on).
>
> I'm still not entirely sure of the situation but right now it sounds like
> the configuration is okay but the Ethernet interface is failing to
> establish a physical link on the first try. Does it also show
> "<UP,NO_CARRIER>" within the interface flags?
>
eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state
DOWN group default qlen 1000
I've done a lot more testing now and there's a race condition somewhere as
it does sometimes (rarely) boot OK and get an IP address with no config
changes.
> `systemctl cat` for direct configuration and `systemctl list-dependencies
> --after` (if I remember it right) should be a good start.
>
So here is what I now have. My unit is now this:
[Unit]
Before=network-pre.target dhcpcd.service
Wants=network-pre.target
[Service]
Type=oneshot
ExecStart=/path/to/script
[Install]
RequiredBy=network.target
Note I added dhcpcd.service to Before as it consistently starts too early
otherwise.
The dhcpcd unit config is (I haven't changed anything here):
[Unit]
Wants=network.target
Before=network.target
[Service]
Type=forking
PIDFile=/run/dhcpcd.pid
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -b
ExecStop=/sbin/dhcpcd -x
[Install]
WantedBy=multi-user.target
Alias=dhcpcd5.service
In this state dhcpcd consistently starts after my script but the DHCP issue
I'm trying to fix continues, so the race may not related to dhcpcd after
all.
--
Mark Rogers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20230926/e7df5a27/attachment-0001.htm>
More information about the systemd-devel
mailing list