systemd 中的 network-online-target 依赖问题

systemd 中的 network-online-target 依赖问题

我在尝试着:

  • 在启动 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.

相关内容