[CentOS] Systemd service unit file needs to wait until a specific interface is up

Wed Sep 23 10:10:22 UTC 2020
Tony Mountifield <tony at softins.co.uk>

In article <004E8170-E842-4E8B-9623-DB3EA236DE9F at outlook.com>,
Carlos Lopez <clopmz at outlook.com> wrote:
> Hi all,
> 
> 
> With SystemD, how can I make certain service dependent on certain network interfaces being up?
> 
> For example, I have an 802.1ad bond interface I need to wait on for being up (this interface has no ip address assigned,
> it is used to capture networks packets with a tcpdump’s script). Every time this service fails because bond interface
> is not up.
> 
> 
> 
> I have configured the service as:
> 
> 
> 
> [Unit]
> 
> Description=tcpdump capture script
> 
> After=network.target
> 
> Wants=network-online.target
> 
> 
> 
> But it doesn’t work …. Any tip or trick?

Just add a line to the tcpdump script to wait for the interface.

Something like this:

until ifconfig -s | grep -q '^bond0' ; do sleep 1 ; done

Cheers
Tony
-- 
Tony Mountifield
Work: tony at softins.co.uk - http://www.softins.co.uk
Play: tony at mountifield.org - http://tony.mountifield.org