支持restart的启动脚本
在实际部署中经常会重启某个进程,有个支持restart的脚本会很方便。
下面的代码是启动数字人制作进程的例子,需要根据自己的需要修改第3行和第26行;
第3行是进程的关键字,第26行是启动进程的命令。
1 #!/bin/bash 2 #这里可替换为你自己的执行程序,其他代码无需更改 3 APP_NAME="droid_make" 4 #使用说明,用来提示输入参数 5 usage() { 6 echo "Usage: sh 执行脚本.sh [start|stop|restart|status]" 7 exit 1 8 } 9 #检查程序是否在运行 10 is_exist(){ 11 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` 12 #如果不存在返回1,存在返回0 13 if [ -z "${pid}" ]; then 14 return 1 15 else 16 return 0 17 fi 18 } 19 20 #启动方法 21 start(){ 22 is_exist 23 if [ $? -eq "0" ]; then 24 echo "${APP_NAME} is already running. pid=${pid} ." 25 else 26 nohup python3 droid_make.py 2>&1 & 27 fi 28 } 29 30 #停止方法 31 stop(){ 32 is_exist 33 if [ $? -eq "0" ]; then 34 kill -9 $pid 35 else 36 echo "${APP_NAME} is not running" 37 fi 38 } 39 40 #输出运行状态 41 status(){ 42 is_exist 43 if [ $? -eq "0" ]; then 44 echo "${APP_NAME} is running. Pid is ${pid}" 45 else 46 echo "${APP_NAME} is NOT running." 47 fi 48 } 49 50 #重启 51 restart(){ 52 stop 53 start 54 } 55 56 #根据输入参数,选择执行对应方法,不输入则执行使用说明 57 case "$1" in 58 "start") 59 start 60 ;; 61 "stop") 62 stop 63 ;; 64 "status") 65 status 66 ;; 67 "restart") 68 restart 69 ;; 70 *) 71 usage 72 ;; 73 esac