LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 946|回复: 7

如何关掉一个连接

[复制链接]
发表于 2006-3-1 13:10:32 | 显示全部楼层 |阅读模式
问题:

我有一个java服务,用多个线程去连接另外一台机器某个端口,
两台机器之间, 由于网络问题, 有些连接出现连接时间过长的问题,
现在暂时没办法在程序里边把这样的连接断开,
我想有没有方法把某个线程杀掉?

我的意思是这样的, 比如我机器的某个线程用1234这个端口, 我在一段时间之内,
用netstat 发现这个连接还是处于不正常状态, 比如都是 同步等待 状态,
我想把这个连接关掉,但是不想重起这个服务, 怎么办?
用shell能做到么?
发表于 2006-3-1 13:45:03 | 显示全部楼层
I think lsof+fuser can do that. check it first.
回复 支持 反对

使用道具 举报

发表于 2006-3-1 13:48:25 | 显示全部楼层
只KILL线程而不关进程,这个办不到吧。懂的人给个答案。
你的这个机制应在服务程序的代码中实现,而不是通过外部管理实现才好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 14:41:31 | 显示全部楼层
这个代码不是我写的,
所以我想看看在外部能不能先用别的方法实现,
因为看代码然后再改需要过程
能否把出问题的端口强制关掉?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 14:41:32 | 显示全部楼层
这个代码不是我写的,
所以我想看看在外部能不能先用别的方法实现,
因为看代码然后再改需要过程
能否把出问题的端口强制关掉?
回复 支持 反对

使用道具 举报

发表于 2006-3-1 15:19:20 | 显示全部楼层
同意 弥敦路九号 的说法。我也觉得没什么方法能做到。不过我不懂内核,请高人指点。
回复 支持 反对

使用道具 举报

发表于 2006-3-1 20:53:25 | 显示全部楼层
tcpkill能否做到杀掉特定的TCP连接,这个命令包含在dsniff中。
回复 支持 反对

使用道具 举报

发表于 2006-3-2 01:23:03 | 显示全部楼层
[color="Blue"]一篇IBM高级程序员的文章
由于线程共享进程的所有资源,我认为如果Kill了线程也就Kill的进程。
  1. lsof -i
复制代码
的output也可以看出线程共享进程的pid. 我原以为是指子进程,但其实意义相差很远。从文中还可以看出Linux在进程/线程管理和运行上要强于windows很多。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表