写一个shell脚本,自动杀掉端口号为8080的进程
时间: 2023-07-01 21:17:51 浏览: 157
可以使用如下的 shell 脚本,它会查找并杀死端口为 8080 的进程:
```bash
#!/bin/bash
port=8080
pid=$(lsof -t -i:$port)
if [[ -n $pid ]]; then
echo "Killing process with PID $pid"
kill $pid
else
echo "No process found on port $port"
fi
```
解释一下脚本的每一部分:
1. 第 2 行定义了要查找和杀死的端口号。
2. 第 3 行使用 `lsof` 命令查找在指定端口上运行的进程的 PID。
3. 第 4 - 8 行是一个条件语句,如果找到了进程,则杀死进程;否则,打印一条消息表示未找到进程。
4. 注意:要确保脚本具有执行权限,可以使用 `chmod +x script.sh` 命令添加权限。
相关问题
linux根据端口杀掉进程sh脚本
要通过端口来杀掉进程,可以使用Linux的命令行工具`lsof`和`kill`来实现。下面是一个简单的Shell脚本示例,可以根据指定的端口号来杀掉对应的进程:
```shell
#!/bin/bash
# 要杀掉的端口号
port=$1
# 使用lsof命令查找指定端口的进程ID
pid=$(lsof -i :$port | awk 'NR==2 {print $2}')
if [ -z "$pid" ]; then
echo "端口 $port 上没有运行的进程."
else
# 使用kill命令杀掉进程
kill $pid
echo "成功杀死端口 $port 上的进程."
fi
```
使用这个脚本,你可以通过命令行传入指定的端口号,例如`./kill_process.sh 8080`。如果该端口上有运行的进程,脚本将会杀掉它,并输出成功的提示信息;如果没有运行的进程,脚本将会给出相应的提示。请注意,你需要在执行脚本之前确保你有足够的权限来杀掉进程。
通过shell执行脚本执行netstat查看端口,并清理该端口
可以编写一个脚本来实现这个任务。以下是一个简单的示例:
```bash
#!/bin/bash
# 获取要清理的端口号
echo "请输入要清理的端口号:"
read port
# 查找该端口是否在监听状态
netstat -an | grep $port
# 如果端口在监听状态,就杀掉相关进程
if [ $? -eq 0 ]; then
echo "端口 $port 正在使用中,正在尝试清理..."
pid=$(lsof -i:$port | awk '{print $2}' | tail -n 1)
if [ -n "$pid" ]; then
echo "找到进程 $pid,正在尝试杀死..."
kill -9 $pid
echo "进程 $pid 已被杀死"
else
echo "无法找到占用该端口的进程"
fi
else
echo "端口 $port 未在使用中,无需清理"
fi
```
在命令行中执行该脚本,输入要清理的端口号,它会自动查找该端口是否在监听状态,如果是,则杀掉相关进程,否则输出无需清理的信息。
阅读全文