shell脚本查询指定端口进程,并结束
时间: 2023-07-13 22:10:44 浏览: 73
好的,可以使用以下的shell脚本来查询指定端口进程,并结束:
```shell
#!/bin/bash
# 定义要查询的端口号
port_num=8080
# 查询端口对应的进程PID
pid=$(lsof -i :${port_num} | awk '{print $2}' | tail -n 1)
# 判断进程是否存在
if [ ! -z "$pid" ]; then
# 结束进程
echo "Port ${port_num} is occupied by process ${pid}, killing it..."
kill -9 ${pid}
else
echo "Port ${port_num} is not occupied"
fi
```
你可以将其中的`port_num`变量替换为你需要查询的端口号,然后在终端中执行即可。该脚本会首先查询指定端口号是否被占用,如果被占用,则会结束该端口对应的进程。如果没有进程占用该端口,则会输出相应的提示信息。
相关问题
通过shell脚本查询某个端口进程并杀死
可以使用以下命令查询某个端口的进程,并杀死该进程:
1. 查询某个端口的进程:
```
lsof -i :端口号
```
例如,查询端口号为8080的进程:
```
lsof -i :8080
```
2. 杀死某个进程:
```
kill -9 进程号
```
例如,杀死进程号为1234的进程:
```
kill -9 1234
```
将上述两个命令结合起来,可以通过shell脚本查询某个端口进程并杀死:
```
#!/bin/bash
port=8080
pid=$(lsof -i :$port | awk '{print $2}')
if [ ! -z "$pid" ]; then
kill -9 $pid
echo "kill process $pid running on port $port"
else
echo "no process running on port $port"
fi
```
将端口号替换为需要查询的端口即可。
使用shell 脚本 执行 ss 命令查看指定端口 并获取进程号
可以使用以下命令:
```
ss -lntp | grep <端口号>
```
其中,-lntp 表示列出所有监听端口的 TCP 连接信息,grep <端口号> 表示匹配指定端口号的连接信息。若该端口有进程与之对应,则会在连接信息中列出进程的 PID(进程号)。
同时,您也可以使用 netstat 命令来实现相同的功能:
```
netstat -lnp | grep <端口号>
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)