Você pode ter sua unidade systemd vinculada ( BindTo
) e depender ( DependsOn
) da unidade .device
da interface de rede correspondente (que é carregada automaticamente) para a interface mencionada da seguinte forma:
[Unit]
Description=Service on interface %I
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/project/my_script.sh start %I
[Install]
WantedBy=multi-user.target
Você provavelmente desejará ter a dependência da unidade formalizada adicionando Wants
e After
se sua unidade personalizada espera ter a interface de rede realmente online adicionando-as em [Unit]
seção:
Wants=network-online.target
After=network-online.target
NB: Você pode verificar se .device
unidades são loaded
fazendo systemctl list-units --type=device
.