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