📅  最后修改于: 2023-12-03 15:26:33.440000             🧑  作者: Mango
在编写网络应用程序时,可能会遇到端口冲突的情况,即已经有另一个进程在使用该端口,导致无法启动程序。此时需要手动杀死占用该端口的进程,以释放端口资源。
Shell-Bash提供了一种简单的方式来杀死所有持有端口的进程,使用命令lsof -i:[PORT]
来列出占用该端口的进程,然后使用kill [PID]
命令逐个杀死进程。
以下是一个在Shell-Bash中实现杀死所有持有端口的进程的脚本:
#!/bin/bash
# 获取端口号
read -p "Enter port number: " port_number
# 杀死所有占用该端口号的进程
for pid in $(lsof -t -i:$port_number); do
echo "killing process $pid"
kill $pid
done
echo "All processes holding port $port_number have been killed."
该脚本使用read
命令获取用户输入的端口号,然后使用lsof -t -i:$port_number
命令获取所有占用该端口的进程的PID,并使用kill
命令逐个杀死进程。
以下是该脚本的Markdown版本:
# 杀死所有持有端口的进程 - Shell-Bash
在编写网络应用程序时,可能会遇到端口冲突的情况,即已经有另一个进程在使用该端口,导致无法启动程序。此时需要手动杀死占用该端口的进程,以释放端口资源。
Shell-Bash提供了一种简单的方式来杀死所有持有端口的进程,使用命令`lsof -i:[PORT]`来列出占用该端口的进程,然后使用`kill [PID]`命令逐个杀死进程。
以下是一个在Shell-Bash中实现杀死所有持有端口的进程的脚本:
```bash
#!/bin/bash
# 获取端口号
read -p "Enter port number: " port_number
# 杀死所有占用该端口号的进程
for pid in $(lsof -t -i:$port_number); do
echo "killing process $pid"
kill $pid
done
echo "All processes holding port $port_number have been killed."
该脚本使用read
命令获取用户输入的端口号,然后使用lsof -t -i:$port_number
命令获取所有占用该端口的进程的PID,并使用kill
命令逐个杀死进程。