相关疑难解决方法(0)

如何在 TIME_WAIT 中强​​行关闭套接字?

我在 linux 上运行一个特定的程序,它有时会崩溃。如果你在那之后快速打开它,它会像第一次那样监听套接字 49201 而不是 49200。netstat 显示 49200 处于 TIME_WAIT 状态。

是否有程序可以运行以立即强制该套接字退出 TIME_WAIT 状态?

networking linux unix tcp socket

125
推荐指数
5
解决办法
27万
查看次数

Systemd 不会重启服务,尽管 Restart=always

这是我的 systemd 服务的单元文件:

[Unit]
Description=Tunnel For %i
After=network.target

[Service]
User=autossh
ExecStart=/usr/bin/autossh -M 0 -N -o "ExitOnForwardFailure yes" -o "ConnectTimeout=1" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 40443:installserver:40443 -R 8080:installserver:8080 tunnel@%i
Restart=always

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

该单元在 15 天前出现故障并且 systemd 没有重新启动它,尽管“Restart=always”在上面的单元文件中。

这里是这个服务的状态输出:

salt:/srv # systemctl status autossh@eins-work
autossh@eins-work.service - Tunnel For eins-work
      Loaded: loaded (/etc/systemd/system/autossh@.service; enabled)
      Active: failed (Result: start-limit) since Wed, 2016-02-10 14:33:34 CET; 2 weeks and 1 days ago
    Main PID: 17980 (code=exited, status=0/SUCCESS)
      CGroup: name=systemd:/system/autossh@.service/eins-work

Feb 10 14:33:34 salt systemd[1]: …
Run Code Online (Sandbox Code Playgroud)

fault-tolerance systemd

10
推荐指数
1
解决办法
9738
查看次数

autossh 的可靠 systemd 服务

我尝试为 autossh 创建一个可靠的 systemd 服务。

服务正常工作,但如果主机密钥发生变化,则服务处于正常状态(正在运行)。

如果隧道不起作用,我希望它处于“失败”状态。

这是我当前的 systemd 服务文件:

# Source is in srv/salt/tunnel/autossh\@.service
# which is a git repo.
# Don't edit /etc/systemd/system/autossh\@.service  
[Unit]
Description=Tunnel For %i
After=network.target

[Service]
User=autossh
# https://serverfault.com/a/563401/90324
ExecStart=/usr/bin/autossh -M 0 -N -o "ExitOnForwardFailure yes" -o "ConnectTimeout=1" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 40443:installserver:40443 -R 8080:installserver:8080 tunnel@%i
Restart=always

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

这是输出 systemctl status autossh@foo-work

salt:/srv # systemctl status autossh@foo-work
autossh@foo-work.service - Tunnel For foo-work
      Loaded: loaded (/etc/systemd/system/autossh@.service; enabled)
      Active: active (running) since Wed, …
Run Code Online (Sandbox Code Playgroud)

ssh ssh-tunnel systemd

5
推荐指数
1
解决办法
2259
查看次数

标签 统计

systemd ×2

fault-tolerance ×1

linux ×1

networking ×1

socket ×1

ssh ×1

ssh-tunnel ×1

tcp ×1

unix ×1