flask项目每次开启完总会自动关闭了。
听闻远方哥(QQ25008793)给我手写了一个脚本。。。。牛逼的一批。。

后台运行并且Shell退出程序依然运行使用命令:

nohup app.py & 在实际过程中,我们一般用脚本,另外就是用 docker k8s 自动编排。

给你写一个脚本。

脚本上传到这个目录就可以使用了,方式

sh ./start.sh start

start.sh代码如下:

function start(){
  if [ ! -d 'venv' ]; then
    python3 -m venv venv
  fi

  source venv/bin/activate

  # requirements.txt
  if [ ! -e 'requirements.txt' ]; then
    echo 'error: "requirements.txt" file not found!'
    exit
  fi

  pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  nohup python app.py & echo $! > app.pid
  echo "run app.py pid:$(cat app.pid)"
}

function stop() {
  if [ -e 'app.pid' ]; then
    pid=$(cat app.pid)
    rm -rf 'app.pid'
    for line in $(ps -ef|grep python|awk '{print $2}')
    do
      if [ $pid = $line ]; then
        echo "kill: $pid"
        kill $pid
      fi
    done
  fi
}

function status() {
    if [ -e 'app.id' ]; then
      pid=$(cat 'app.id')
      for line in $(ps -ef|grep python|awk '{print $2}')
      do
        if [ $pid = $line ]; then
          echo "app.py     ok    $pid"
        fi
      done
    fi
}

function main(){
  command=$1
  case command in
  'start')
    start
  ;;
  'stop')
    stop
  ;;
  'restart')
    stop
    start
  ;;
  'status')
    status
  ;;
  *)
    echo '--------------------------命令列表--------------------------'
    echo '|              start                    启动               |'
    echo '|              stop                     停止               |'
    echo '|              restart                  重启               |'
    echo '|              status                   状态               |'
    echo '-----------------------------------------------------------'
  ;;
}

# --------------------------

main $*
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐