revel nohup 部署

#!/bin/bash

#function that prints out usage syntax
syntax () {
    echo " "
    echo "./app-xxx.sh [options]"
    echo " "
    echo "  [options] is one of create | backup | rm | read "
    echo "    start             - start concurrent application "
    echo " "
    echo "    stop             - stop concurrent application"
    echo " "
    echo "    restart                 - restart concurren application"
    echo " "
    echo "    bstart               - build and start concurrent application"
    echo " "
    echo "    brestart               - build and restart concurrent application"
    echo " "
    echo " "
}


project='whale'
port=''$2
runmode=''$3
application='app-'${runmode}'-'${port}
cd ./../../ # project path
runpath=`pwd`'/'${project}'/deploy/'${application}

if echo "$port" | grep -q '^[0-9]\+$'; then
    echo "["$1"] application: $application ,port: $port."
else
    echo "$0 {run:start|stop|restart} {port:number} {runmode:dev|test|prod}"
    exit 4
fi

if [ $runmode != "dev" ] && [ $runmode != "test" ] && [ $runmode != "prod" ]; then
    echo "$0 {run:start|stop|restart} {port:number} {runmode:dev|test|prod}"
    exit 4
fi

function build(){
     if [ -d '${runpath}' ];then
        rm -rf ${runpath}
     fi
     mkdir ${runpath}
     touch ${runpath}/run.log
     sed -i '' "s/^http.port.*/http.port = ${port}/g" ./${project}/conf/app.conf
     if [ -f '${project}.tar.gz' ];then 
        rm ${project}.tar.gz
     fi
     GOOS=linux GOARCH=amd64 revel package whale
     # GOOS=darwin GOARCH=amd64 revel package ${project}
     tar -zxf whale.tar.gz -C ${runpath}
     echo ${runpath}" ${1}模式 ${runmode}"

}

function start() {
    nohup "${runpath}/${project}" -importPath ${project} -srcPath "${runpath}/src" -runMode prod 2>&1 >> ${runpath}/run.log 2>&1 /dev/null &
    echo $! > ${runpath}/run_pid
    echo ${runpath}" ${1}模式 ${runmode}"
}

function kill() {
    kill -9 `cat ${runpath}/run_pid`
    # killall ${application}
    echo ${runpath}" ${1}"
}

case $1 in
    start)
        start " 服务已重启..."
    ;;
    restart)
        kill " 服务已停止..."
        start " 服务已重启..."
    ;;
    bstart)
        build " 服务已构建..."
        start " 服务已启动..."
    ;;
    stop)
        kill " 服务已停止..."  
    ;;
    brestart)
        kill " 服务已停止..."
        build "服务已构建..."
        start " 服务已重启..."
    ;;
    *)
        echo "$0 {start|stop|restart}"
        exit 4
    ;;
esac

附带github链接 https://github.com/11101171/whale

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值