123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #!/usr/bin/env bash
- #包名
- packageName="phoenix-ui.jar"
- #程序名
- programName="phoenix-ui"
- #检测状态
- function status() {
- echo "---------------------------------------检测状态---------------------------------------"
- pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
- if [ ${pid} ]; then
- echo "${programName}正在运行,进程ID:${pid}"
- else
- echo "${programName}未运行!"
- fi
- }
- #停止程序
- function stop() {
- echo "---------------------------------------停止程序---------------------------------------"
- #打印出当前的进程,grep -v grep 去掉grep进程
- pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
- #查询进程个数:wc -l 返回行数
- count=$(ps -ef | grep -n ${packageName} | grep -v grep | wc -l)
- echo "${programName}进程ID:$pid,进程个数:$count"
- #关闭进程
- if (($count > 0)); then
- kill $pid
- else
- echo "${programName}未运行!"
- exit 0
- fi
- #打印关掉的进程ID
- echo "关闭进程:$pid"
- count=$(ps -ef | grep -n ${packageName} | grep -v grep | wc -l)
- sec=5
- sum=12
- #开始一个循环
- while (($sum > 0)); do
- if (($count > 0)); then
- #若进程还未关闭,则脚本sleep几秒
- sleep $sec
- count=$(ps -ef | grep -n ${packageName} | grep -v grep | wc -l)
- else
- #若进程已经关闭,则跳出循环
- echo "${programName}已经关闭!"
- break
- fi
- sum=$(($sum - 1))
- done
- #超时不能停止,强制杀掉进程
- if (($count > 0)); then
- kill -9 $pid
- echo "${programName}被强制关闭!"
- sleep 1
- fi
- }
- #启动程序
- function start() {
- echo "---------------------------------------启动程序---------------------------------------"
- pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
- if [ ${pid} ]; then
- echo "${programName}正在运行,请先停止程序!"
- else
- #启动进程
- nohup java -jar -Ddruid.mysql.usePingMethod=false ${packageName} --spring.profiles.active=prod >/dev/null 2>&1 &
- pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
- if [ ${pid} ]; then
- echo "${programName}已经启动,进程ID为:$pid"
- else
- #等待5秒
- sleep 5
- pid=$(ps -ef | grep -n ${packageName} | grep -v grep | awk '{print $2}')
- if [ !${pid} ]; then
- echo "${programName}启动失败!"
- fi
- fi
- fi
- }
- #启动时带参数,根据参数执行
- if [ ${#} -ge 1 ]; then
- case ${1} in
- "start")
- start
- ;;
- "restart")
- stop
- start
- ;;
- "stop")
- stop
- ;;
- "status")
- status
- ;;
- *)
- echo "${1}无任何操作"
- ;;
- esac
- else
- echo "
- start:启动
- stop:停止
- restart:重启
- status:检查状态
- 示例命令如:./phoenix_ui start
- "
- fi
|