shell 端口占用 杀死进程

参考:shell判断8000端口是否被占用并杀死占用端口进程

1. 需求

  1. 检查端口 6789 是否被占用,如果被占用,kill 掉对应的进程,启动我们自己的程序

2. 实现脚本

#!/bin/bash
curdir=$(dirname $0)
#获取6789端口的第七列的值给perpid变量
perpid=`netstat -tunlp|grep 6789 |awk '{print $7}'`
if [ $perpid ];then
        #从后开始删除变量,删除到第一个/停止,赋值给apid
        apid=${perpid%/*}
        echo "获取 6789 端口进程号:$apid"
        #杀死进程
        kill -9 $apid
        echo "杀死占用 6789 端口进程(pid:$apid)"
else
        echo "没有进程占用 6789 端口"
fi

# 让程序在后台运行
nohup /usr/bin/python $curdir/upgrade_service.py > nohup.log 2>&1 &

你可能感兴趣的:(shell,linux,运维)