如何在成功建立互联网连接后自动执行脚本。
我尝试将脚本放在 if-up.d 中,但它不起作用,我找不到有关如何执行此操作的任何文档。如果我手动执行,该脚本就可以正常工作。
有人可以帮忙吗?
答案1
斯蒂芬·波士顿 (Stephen Boston) 提到您可以使用 systemd 服务来实现自动化。
在 /etc/systemd/system 下创建一个服务文件,并将其命名为 FILENAME.service
将其粘贴到您的文件中:
[Unit]
Description=YOUR DESCRIPTION
Requires=network-online.target
After=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/YOUR/PATH/TO/SCRIPT
[Install]
WantedBy=multi-user.target
Type=oneshot 表示只会执行一次。
线路需要=网络在线.目标表示该服务需要服务网络在线,并且只执行之后=网络在线.目标
可以看到network.service之后启动了服务(test.service)
要完成此操作,您需要使用以下命令启用该服务
sudo systemctl enable FILENAME.service
检查您的服务是否已启用
sudo systemctl is-enabled FILENAME.service
当然,您也可以手动启动或停止该服务
sudo systemctl start/stop/restart/status FILENAME.service
提示:图片由systemd-analyze plot > output.svg