![systemd 服务错误:启动后没有到主机的路由](https://linux22.com/image/1601037/systemd%20%E6%9C%8D%E5%8A%A1%E9%94%99%E8%AF%AF%EF%BC%9A%E5%90%AF%E5%8A%A8%E5%90%8E%E6%B2%A1%E6%9C%89%E5%88%B0%E4%B8%BB%E6%9C%BA%E7%9A%84%E8%B7%AF%E7%94%B1.png)
我希望我的计算机在启动时 telnet 到远程计算机(直接连接到以太网)。我feedback.service
在/etc/systemd/system/
[Unit]
Description=Feedback relay daemon
Wants=network-online.target network.target
After=network-online.target network.target
[Service]
Type=oneshot
WorkingDirectory=/usr/local/
ExecStart=/usr/local/bin/feedback.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
feeback.sh:
#!/bin/bash
telnet 192.180.0.60 9000
exit 0
我使用该选项After=network-online.target
确保此脚本在网络配置完成后运行。但是,重启后systemctl status feedback
仍然显示错误。似乎路由表在激活No route to host
时设置不正确。feedback.sh
我已经检查过远程主机是否已启动并且网络可以访问。ping
重启完成后我就可以远程主机了。我尝试sleep 10
在脚本顶部添加,然后它运行良好。
#!/bin/bash
sleep 10
telnet 192.180.0.60 9000
exit 0
但这只是权宜之计。我需要一个真正的解决方案。
=====================2019/08/22 更新=============================
root@host# systemctl list-dependencies network-online.target
network-online.target
● └─networking.service