shell 脚本启动 flask


#!/usr/bin/env bash
# 第一行是说明使用的什么脚本语言,这里是 bash, 固定用法
# workdir 是一个路径,即先切换到这个目录下,然后启动服务 (启动命令: python app.py)。其实不切换应该也可以
workdir
=/Users/llm/PycharmProjects/solar-clover-backend
# 启动函数,切换路径=》其实就是 python app.py 。 前面一段指明是哪个路径下的python, 后面是 app.py 的路径, & 表示以后台方式启动(这里还不是很了解) daemon_start() { cd $workdir
/Users/llm/env_workspaces/flask/bin/python /Users/llm/PycharmProjects/solar-clover-backend/app.py & echo "Server started." }
# 停止函数,思路就是我们要找到这个进程号,然后把它 kill 掉
# 进程号寻找: 即 ps -ef|grep 命令, grep 用来过滤,awk 用来将过滤结果进行整理。 像这个命令,过滤出来有很多列,但我们只要进程号那一列,所以就是 {print $2}, 表示进程号那一列
# BEGIN{ ORS="," } 表示以逗号分隔每个进程号, 不写默认换行符分隔。
# 输出其实是一个字符串, 把它变为数组,因为我要取出第一个将进程杀死。 arr=... 这句话就是将 pid 变量里的内容转换为数组,存入arr。
# 接下来就是取到 arr 第一个进程号, 使用 kill 命令杀死
daemon_stop() { pid
=`ps -ef | grep 'python /Users/llm/PycharmProjects/solar-clover-backend/app.py' | awk 'BEGIN{ ORS="," }{ print $2 }'` arr=(`echo ${pid} | tr ',' ' '`) echo ${arr[1]} kill ${arr[1]} sleep 3 echo "Server killed." }
# $1 表示命令行交互输入的第一个参数。 我们使用 ./dev.sh start 来运行脚本启动服务(因为此脚本文件名称为 dev.sh), start 位置上的变量就是传入的第一个位置上的参数,也可以变为 stop, restart
case "$1" in start) daemon_start ;; stop) daemon_stop ;; restart) daemon_stop daemon_start ;; *) echo "Usage: ./dev.sh {start|stop|restart}" exit 1 esac exit 0

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM