程序启停Shell脚本

脚本

  • 当部署程序需要频繁启停且输入命令过长时,往往会比较麻烦,使用shell脚本可以一定程度优化繁琐的命令。
now=$(date +%Y%m%d)
command='java -jar XXX.jar'
log_file_url="/opt/${now}_XXX.log"

start(){
    if [ "$log_file_url" != "" ]; then
        exec $command  > "$log_file_url" 2>&1 &
    else
        exec $command 2>&1 &
    fi
}

stop(){
 ps -ef | grep "$command" | awk '{print $2}' | while read pid
 do
    C_PID=$(ps --no-heading $pid | wc -l)
    echo "当前PID=$pid"
    if [ "$C_PID" == "1" ]; then
        echo "PID=$pid 准备结束"
        kill -15 $pid   #kill默认-15
        # kill -9 $pid  强制
        echo "PID=$pid 已经结束"
    else
        echo "PID=$pid 不存在"
    fi
 done
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
printf 'Usage: %s {start|stop|restart}\n' "$prog"
exit 1
;;
esac
← 返回技术