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