我有一个侦听TCP端口的进程(?0003)。 它不时崩溃 – 严重。 它停止工作,但继续占用端口一段时间,所以我甚至不能重新启动它。 我正在寻找这个自动化。
我现在所做的是:
netstat -ntlp |grep -P "\*\:\d0003"
看看什么是PID,然后:
kill -9 <pid>
有没有人有一个脚本(或EXE的事情),将两个步骤连接在一起,即。 从第一个命令parsingPID并传递给第二个?
你也可以这样做:
kill -9 $( lsof -i:?0003 -t )
kill $(netstat -ntpl 2>/dev/null | egrep "^tcp .*:[0-9]0003"|awk '{print $7}'|cut -d / -f 1 )
你可以kill -9而不是你认为-9是必需的。 我redirectnetstat stderr,因为它在以非root用户身份运行时省略了一条消息,这对于此目的是不重要的。 我在正则expression式中包含tcp来过滤掉tcp6。
你去哪里,一条线给你
netstat -ntlp | awk '$4~/:*0003$/{gsub(/\/.*/,"",$NF);cmd="kill -9 "$NF;system(cmd)}'
我认为python命令只是完整命令中的第一项,对吧? 如果你有正在运行的脚本的名字,你可以看看像pgrep -f
如果你确信唯一性,你也可以使用相关的pkill -f
那么killall <command>有多less个这样的过程?
如果这不起作用,请尝试:
PID=`netstat -ntlp |grep -P "\*\:\d0003"`; kill -9 $PID
这应该够了吧。
也许fuser命令与-k和-n选项可能有帮助。 说“男人fuser”的更多信息。