我正在尝试自动化我一次又一次面临的工作之一。 有些端口有时未被某些先前的工作正确关闭..
让我们说端口5000,5001
我想做的是查看这些端口是否已打开
并在这些端口打开时终止这些端口
现在,我正在做
lsof -i :5000
和
kill -9 pid1
kill -9 pid2
依旧......
有没有办法将5000和5001作为参数传递并自动执行此过程
答案 0 :(得分:2)
如果您想在使用它时自动执行此操作,请执行以下操作。
创建一个bash脚本,例如将其称为'killMyPorts'并添加以下内容:
#!/bin/bash
kill -9 `lsof -i :"${1}" | awk '{if (NR!=1) {print $2}}'`
一旦你使脚本可执行(chmod u + x),就可以按如下方式执行:
./killMyPorts 5000
答案 1 :(得分:1)
fuser
可以为你完成这项工作。
kill_port_users() {
for port; do
fuser -n tcp -k "$port"
done
}
kill_port_users 5000 5001
答案 2 :(得分:0)
你试过吗
kill -9 `lsof -i :5000`
或
kill -9 $(lsof -i :5000)