Autossh 启动失败

Autossh 启动失败

我正在尝试让 autossh 使用 systemd 自动设置到我家里的服务器的反向隧道。我在 /etc/systemd/system 中设置了一个名为 autossh.service 的单元

如果我连接到互联网后启动该服务,一切都会正常。然而,启动时情况并非如此。由于未连接到 Internet,因此无法显示“无法解析主机名”。

在 /etc/systemd/system/autossh.service 我有一行

After=network-online.target

理论上应该可以解决这个问题,但事实并非如此。该命令在启动时失败(它尚未在线,因此它表示无法解析主机名)并且不会重试。

我该如何解决这个问题?

答案1

就像是:

Restart=always
RestartSec=120

或许...

或者参见:Systemd 服务在 StartLimitInterval 后自动重启

答案2

a) 尝试StartLimitIntervalSec=12在 的开头添加 [Unit] autossh.service

b)Type=simple在[服务]部分。

c) 重新加载守护进程sudo systemctl daemon-reload

d) 重新启用它sudo systemctl enable autossh

e) 启动它sudo systemctl start autossh

f) 重新启动

成功了吗?

答案3

您还应该添加:

Wants=network-online.target

这将确保所有已配置的网络设备均已启动并在服务启动之前分配有 IP 地址。

答案4

这听起来不是一个让你的单元文件等待的更好目标吗?

nss-查找.target

应该用作所有主机/网络名称服务查找的同步点的目标。请注意,这与应使用 nss-user-lookup.target 的 UNIX 用户/组名称查找无关。所有需要完整主机/网络名称解析的服务都应在此目标之后排序,但不要将其拉入。systemd 会自动将此目标单元的 After= 类型的依赖项添加到具有 LSB 的所有 SysV init 脚本服务单元标头引用“$named”设施。

参考

相关内容