Step 1:创建脚本
vi restart.sh
脚本内容
#!/bin/bash
if [ ! -n "$1" ]; then
echo "请指定重启服务的端口!"
exit 1
fi
# 获取端口的进程PID
PID=`lsof -i :$1 | awk 'NR==2{print $2}'`
echo "端口:$1,PID: $PID"
kill -9 $PID
# 重启服务
echo '启动服务中...'
nohup ./start.sh > log.txt 2>&1 # 替换成自己的服务启动命令即可,注意路径
echo '启动成功.'
Step 2:给脚本添加可执行权限
chmod +x restart.sh
Step 3:测试脚本
./restart.sh 8080
控制台输出
端口:8080,PID: 1314
启动服务中...
启动成功.
注意
1. 实际使用中需要注意设置变量时,“=”左右两边不要有个空格
2. “lsof -i ”后面要有一个空格
3. 字符串中包含变量时,需要使用双引号 echo "$PID"