golang 服务启动相关脚本

默认分类·工作 · 2023-07-10
#!/bin/bash
name=isochrone_server
app_name=isochrone_server.app
app_log=isochrone_server.log

if [[ ! -d logs ]]
then
        mkdir logs
fi

app_process_pid(){
        number=`ps -ef|grep ${app_name}|grep -v grep |awk '{print $2}'`
        echo ${number}
}

start(){
        if [ ! `app_process_pid` ]
        then
                nohup ./${app_name}  >logs/${app_log} 2>&1 &
                echo "${app_name} is start pid: `app_process_pid`"
        else
                echo "${app_name} is already exists"
        fi

}

stop(){
        if [ ! `app_process_pid` ]
        then
                echo "${app_name} is not running"
        else
                kill -9 `app_process_pid`
                echo "${app_name} is stopped"
        fi
}

status(){
        if [ ! `app_process_pid` ]
        then
                echo "${app_name} is not running"
        else
                echo "${app_name} is running"
        fi
}

swagger(){
        goctl api plugin -plugin goctl-swagger="swagger -filename ${name}.json" -api ${name}.api -dir .
}


case $1 in
        start)
                start
                ;;
        stop)
                stop
                sleep 2
                ;;
        restart)
                stop
                sleep 2
                start
                ;;
        status)
                status
                ;;
        swagger)
                swagger
                ;;
esac

使用:
make start,make stop,make status,make swagger

shell go-zero swagger
Theme Jasmine by Kent Liao