我写了一个非常简单的服务:
[Unit]
Description=Service on interface %I
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/project/my_script.sh start %I
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我开始喜欢systemclt start myservice@net0
,net0
网络接口在哪里。每次重新启动网络接口时如何重新启动服务?
小智 12
您可以让 systemd 单元绑定 ( BindTo
) 并依赖 ( DependsOn
) 所述.device
接口的相应网络接口(自动加载)的单元,如下所示:
[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
Run Code Online (Sandbox Code Playgroud)
您可能希望通过添加来形式化单元的依赖关系,Wants
并且After
如果您的自定义单元希望通过在以下部分中添加这些来使网络接口实际联机[Unit]
:
Wants=network-online.target
After=network-online.target
Run Code Online (Sandbox Code Playgroud)
注意:您可以验证.device
单位loaded
做systemctl list-units --type=device
。
归档时间: |
|
查看次数: |
5574 次 |
最近记录: |