1. 程式人生 > >寫一個shell指令碼啟動伺服器 -----python

寫一個shell指令碼啟動伺服器 -----python

使用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

最後 記得給檔案加上許可權 不然會報錯