寫一個shell指令碼啟動伺服器 -----python
阿新 • • 發佈:2018-12-10
使用shell指令碼寫一個一鍵啟動伺服器
由於我們伺服器使用的docker, nginx和 redis 還有mysql都是docker啟動好的
我們專案使用supervisor程序管理工具,需要提前配置,但是不知道什麼原因,以前的環境配置出了問題,supervisor不能用命令來控制程式碼重啟和暫停,只能手動殺掉程序, 所以每次都要敲一些命令進環境啊,殺程序什麼的。。很麻煩,所以想搞個shell 每次就可以直接執行
程式碼如下
首先宣告變數為查詢帶有python的正在執行
wc -l # 統計數量
#!/usr/bin/env bash
python_num=`ps aux | grep python | wc -l `
uwsgi_num=`ps aux | grep uwsgi | wc -l`
# 宣告查詢程序的變數
查詢程序:
awk '{print $2}' # 列印第二個欄位
xargs # 橫向輸出
# 第二個欄位是pid號 橫向輸出 kill
# 判斷python的程序是否大於1,如果大於殺掉所有程序
if test "$python_num" -gt "1" ;then
ps aux | grep -w python | awk '{print $2}' | xargs kill -9
fi
# 判斷uwsgi程序,同理
if test "$uwsgi_num " -gt "1" ;then
ps aux | grep -w uwsgi | awk '{print $2}'| xargs kill -9
fi
以下是我們專案啟動方式, 上面的程式碼才是核心所在
# 進入虛擬環境
cd /opt/runningcloud/fxxxxxk/fxxxxxd
source env/bin/activate
# 執行
cd /opt/runningcloud/fxxxxxxk/fxxxxxxd/fxxxxd/extra_server
nohup python recvdelmessage.py > /dev/null 2>&1 &
# 啟動supervisor執行伺服器
cd /opt/runningcloud/baseenv
supervisord -c supervisord/supervisord.conf
最後 記得給檔案加上許可權 不然會報錯