yanxi

shell 判断程序是否运行,并显示端口及进程号?
判断程序是否运行程序运行的端口及进程#! /bin/bash P="caddy" c...
扫描右侧二维码阅读全文
07
2018/02

shell 判断程序是否运行,并显示端口及进程号?

  1. 判断程序是否运行

  2. 程序运行的端口及进程

#! /bin/bash
P="caddy"
check_port(){ port=`netstat -tpln |grep "$P" |awk '{print $4}' |sed 's/::://g'` 
        }
check_pid(){    PID=`pgrep -f $P`
        }
caddy="/usr/local/caddy"
check_port
if [[ ${port} -eq 2015 ]]; then
        check_pid
        echo "filemanager is run ,port: $port , pid: ${PID}"
else
        ulimit -n 8192
        cd $caddy && nohup caddy -conf Caddyfile >/dev/null 2>&1 &
        sleep 5
        check_port
        check_pid        
        echo "filemanager is start ,port: $port , pid: ${PID}"
fi
  • check_port() {}   \\定义内部函数名

  • port=`netstat -tpln |grep "$P" |awk '{print $4}' |sed 's/: : ://g'` \\检索caddy运行的端口号

  •  PID=`pgrep -f $P`  \\程序的进程号

  • if [[ ${port} -eq 2015 ]]  \\判断端口号是否等于2015,如果为真那么运行then后面的语句,如果为假,运行elase语句。

  • netstat -tpln |grep caddy |awk '{print $4}'  

    运行结果:  : : :2015 

  • sed 's/: : ://g'  \\使用后缀 /g 标记会替换:::

  • 也可以将两个函数合并成一个

    check(){ port=*****

  •             pid=

            }

  • sed -i 's/check_port/check/g'  a.sh  把a.sh文档内的check_prot替换成check

  • 注意:在筛选时尽量不要用端口,如果使用端口会出现问题。

Last modification:March 7th, 2018 at 09:41 am
If you think my article is useful to you, please feel free to appreciate

Comment here is closed