帮我写一个 可以在ubuntu 下运行的脚本,可以查找18886端口是否被占用,如果被占用的话就kill掉该进程
时间: 2024-03-22 10:41:13 浏览: 70
Linux查找占用的端口,并杀死进程的方法
好的,以下是可以在 Ubuntu 下运行的脚本,用于查找 18886 端口是否被占用,如果被占用就 kill 掉该进程:
```bash
#!/bin/bash
# 检查 18886 端口是否被占用
port=18886
result=`netstat -anp | grep $port | wc -l`
if [ $result -eq 0 ]; then
echo "端口 $port 未被占用"
else
echo "端口 $port 被占用,正在停止相关进程..."
pid=`lsof -i:$port | awk '{print $2}' | awk 'NR==2'`
kill -9 $pid
echo "相关进程已停止"
fi
```
解释一下脚本的逻辑:
1. 首先定义变量 `port` 为 18886,表示要检查的端口号。
2. 使用 `netstat` 命令查找所有端口状态信息,并通过管道符 `|` 和 `grep` 命令过滤出 18886 端口的状态信息。然后使用 `wc -l` 命令统计行数,如果行数为 0,则表示该端口未被占用。
3. 如果端口被占用,则使用 `lsof` 命令查找该端口对应的进程号,并使用 `awk` 命令取出第二行的进程号。然后使用 `kill` 命令强制停止该进程。
4. 输出相关信息,完成脚本。
注意:需要使用 root 权限运行该脚本,否则无法 kill 掉进程。可以通过 `sudo ./script.sh` 命令执行脚本。
阅读全文