使用端口在一行中查找并终止PID

时间:2013-06-28 12:15:57

标签: ruby-on-rails bash shell ubuntu

我一直在使用rails,偶尔我的服务器会滑入后台,我必须手动杀死它。为此,我一直在使用以下命令。

sudo netstat -tulpn | grep port_number
sudo -9 PID

有没有办法在一行中执行此操作以便我可以使用别名?或者甚至一种方法来做到这一点,我不必复制PID,以便我可以把它放在脚本中?

2 个答案:

答案 0 :(得分:1)

sudo kill -9 `sudo netstat -tulpn | grep port_number | tail -c 23 | sed -e 's/\s*\(.*\)/\1/g' -e 's/\([0-9]*\).*/\1/g'`

我不得不说,这是相当危险的,因为它会杀死部分匹配(让我们说你在端口8081上有东西而你用81运行它,它会在8081上杀掉这个项目,如果那是首先在netstat上市)

答案 1 :(得分:1)

我会用这样的东西:

sudo netstat -tlpn | grep ":16667 " | sed -n 's@.* \([0-9]*\)/ruby.*@kill \1@p' | sudo sh

只会杀死侦听该确切端口的ruby进程。