最近在研究flask,在架設執行環境的時候犯了難。因為我想把每個獨立的應用像nginx處理多個**那樣,每個應用單獨乙個配置檔案。而網上流傳的uwsgi啟動指令碼都只支援單個配置檔案。雖然有文章說可以把多個應用的配置寫成命令整合到啟動指令碼裡,但那樣的話顯然不夠靈活。官方文件看了頭實在是大,找來找去也沒個頭緒。於是決定自己把啟動指令碼改進一下。在原來指令碼的基礎上加入了配置檔案遍歷獲取,再迴圈處理每個配置檔案。改造難度不大效果卻很好,完美實現我的需求。現將**貼出來分享給有需要的人。當然如果您有更簡便的方法能達到目的,還請勞煩告之一聲。
特別宣告:
1、 指令碼只支援ini格式配置檔案的載入,如需要載入其他格式配置檔案請自行修改指令碼中對應位置**。
3、 指令碼命名為uwsgi_svr儲存到/etc/init.d/目錄下,記得配置執行許可權。
#!/bin/bash# chkconfig: 2345 55 25
# description: startup script for uwsgi webserver on debian. place in /etc/init.d and
# distro. for centos/redhat run: 'chkconfig --add uwsgi'
### begin init info
# provides: uwsgi
# required-start: $all
# required-stop: $all
# default-start: 2 3 4 5
# default-stop: 0 1 6
# short-description: starts the uwsgi web server
# description: starts uwsgi using start-stop-daemon
### end init info
# modify by lykyl
# ver:1.1
# description: script can loads multiple configs now.
path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
desc="uwsgi daemon"
name=uwsgi_srv
daemon=/usr/local/bin/uwsgi
configdir=/etc/uwsgi/
piddir=/var/run/
scriptname=/etc/init.d/$name
findcmd="/usr/bin/find"
declare -a inilist
declare -a sitenamelist
function init()
dositenamelist=($ `basename $i|awk -f. ''`)
done
}function start()
doif $daemon $i; then
echo "$ started"
else
echo "$ already running"
filet ++c
done}
function stop()
doif $daemon --stop $$.pid; then
echo "$ stoped"
else
echo "$ not running"
firm -f $$.pid
let ++c
done}
function reload()
doif $daemon --reload $$.pid; then
echo "$ reloaded"
else
echo "$ can't reload"
filet ++c
done}
function status()
#main
set -e
[ -x "$daemon" ] || exit 0
init
case "$1" in
status)
echo -en "status $name: \n"
status
;; start)
echo -en "starting $name: \n"
start
;; stop)
echo -en "stopping $name: \n"
stop
;; reload|graceful)
echo -en "reloading $name: \n"
reload
;; *)
echo "usage: $scriptname " >&2
exit 3
;;esac
exit 0
tomcat啟動指令碼,支援啟動 停止 重啟命令
我們經常在部署tomcat專案的時候,部署了新包之後,需要重啟tomcat,如果你每次都是kill掉tomcat程序,然後再使用startup.sh啟動的話,是不是覺得很不爽?那你不妨使用 的方法。1 新建乙個tomcat.s 件,檔案內容如下 bin bash shutdown tomcat ho...
Oracle 啟動指令碼
大家都注意到用oracle自帶的dbstart指令碼無法在系統啟動時自動啟動oracle資料庫,下面介紹oracle啟動指令碼的編寫和設定!最簡單的指令碼示例 bin sh sqlplus as sysdba oracle instance started.total system global a...
bash啟動指令碼
啟動指令碼是bash啟動時自動執行的指令碼。使用者可以把一些環境變數的設定和alias umask設定放在啟動指令碼中,這樣每次啟動shell時這些設定都自動生效。思考一下,bash在執行啟動指令碼時是以fork子shell方式執行的還是以source方式執行的?啟動bash的方法不同,執行啟動指令...