我有一个进程可以在不同的端口上打开几个到几个浏览器的tcp连接。
使用netsat输出是这样的:
tcp 0 0 server1.something:myprog client1.something:49987 ESTABLISHED
tcp 0 0 server1.something:myprog client1.something:65987 ESTABLISHED
tcp 0 0 server1.something:myprog client1.something:89987 ESTABLISHED
现在我想杀死其中一个连接?我该怎么做? (因为杀死进程会终止所有连接)
答案 0 :(得分:6)
以下是一些选项:
似乎没有一个很好的支持方式来做到这一点。如果他们的FD无论如何意外关闭,进程很可能会崩溃。
答案 1 :(得分:4)
您不能杀死进程的单个连接。
但你可以用iptables阻止它。因此,连接无法提供或接收数据,客户端将在超时运行。
答案 2 :(得分:0)
在Linux内核> = 4.9上,您可以通过键ss
使用iproute2的-K
命令
ss -K dst client1.something dport = 49987
必须在启用CONFIG_INET_DIAG_DESTROY
选项的情况下编译内核。