我在尝试着:
- 在启动 Kubuntu(Ubuntu 19.10)时运行 bash 脚本
- 在我的互联网连接建立后
- 使用 systemd(使用 network-online.target 服务)
我在下面编写了 .service 文件。它指的是一个 sh 可执行文件,用于通过 ping 测试 IPv4 是否正常运行。
- 该脚本(所有人都可以执行)可以运行,当我手动运行它时它会告诉我已经启动了。
- Systemd 在启动时成功调用脚本,我可以看到脚本在启动后已经运行
但是,systemd 不知怎么地在我的互联网连接建立之前调用了我的服务,而它应该等待互联网连接后再运行。有人知道这里出了什么问题吗?请参阅下面的代码:
我的脚本(/home/me/scripts/testInternetConnection.sh):
if ping -q -c 1 -W 1 8.8.8.8 >/dev/null; then
echo "IPv4 is up" >> /home/me/Desktop/result.txt
else
echo "IPv4 is down" >> /home/me/Desktop/result.txt
fi
我的服务文件定义(/etc/systemd/system/myConnectionTester.service):
[Unit]
Description=test internet connection
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=me
WorkingDirectory=/home/me
ExecStart=/home/me/scripts/testInternetConnection.sh
[Install]
WantedBy=multi-user.target
WantedBy=network-online.service
提前致谢!
N.