帮我写一个 可以在ubuntu 下运行的脚本,可以查找18886端口是否被占用,如果被占用的话就kill掉该进程
时间: 2024-03-22 20:41:13 浏览: 18
好的,以下是可以在 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` 命令执行脚本。
相关问题
Ubuntu python脚本端口被占用
如果你的Python脚本在Ubuntu上遇到了端口被占用的问题,可以尝试以下解决方案:
1. 查看端口占用情况:在终端输入命令 `sudo netstat -lnp | grep 端口号`,其中的端口号是你的Python脚本在使用的端口。如果该端口被占用,会显示出占用该端口的进程的PID。
2. 结束占用该端口的进程:在终端输入命令 `sudo kill -9 进程PID`,其中的进程PID是上一步中查到的占用该端口的进程的PID。这样就可以结束该进程并释放该端口。
3. 修改Python脚本使用的端口:如果上述方法无法解决问题,可以尝试修改Python脚本使用的端口,比如将原来的端口号改为另一个未被占用的端口号。
4. 重启网络服务:如果仍然无法解决问题,可以尝试重启网络服务。在终端输入命令 `sudo service networking restart`,这样可以重启网络服务并释放所有占用的端口。
帮我写一个脚本,在ubuntu系统的服务器开机时,自动运行部署的jar包
好的,以下是在Ubuntu系统的服务器开机时自动运行部署的jar包的脚本:
1. 首先打开终端,输入以下命令创建一个新的脚本文件:
```
sudo nano /etc/init.d/run_jar.sh
```
2. 在编辑器中,输入以下内容:
```
#!/bin/sh
# description: Script to start/stop the jar file
# processname: myjarfile
# Set the path to the jar file
JAR_PATH=/path/to/myjarfile.jar
case $1 in
start)
echo "Starting myjarfile..."
nohup java -jar $JAR_PATH > /dev/null 2>&1 &
;;
stop)
echo "Stopping myjarfile..."
kill $(ps aux | grep 'myjarfile' | awk '{print $2}')
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
```
注意:需要将 `JAR_PATH` 替换为实际的 jar 文件路径。
3. 保存并关闭文件。
4. 接下来,需要将脚本文件设置为可执行文件。在终端中输入以下命令:
```
sudo chmod +x /etc/init.d/run_jar.sh
```
5. 最后,将脚本文件添加到系统启动项中。在终端中输入以下命令:
```
sudo update-rc.d run_jar.sh defaults
```
至此,脚本就已经设置成功了。在下一次系统重启后,jar 文件将会自动运行。
如果需要手动启动/停止/重启 jar 文件,可以使用以下命令:
```
sudo /etc/init.d/run_jar.sh start
sudo /etc/init.d/run_jar.sh stop
sudo /etc/init.d/run_jar.sh restart
```