uwsgi 시작 스 크 립 트 를 개선 하여 여러 개의 독립 프로필 을 지원 합 니 다.
특별 성명:
1. 스 크 립 트 는 INI 형식 프로필 의 불 러 오기 만 지원 합 니 다. 다른 형식 프로필 을 불 러 오 려 면 스 크 립 트 에 해당 하 는 위치 코드 를 스스로 수정 하 십시오.
2. PID 파일 이름 은 설정 파일 이름과 일치 하고 확장 자 는 pid 입 니 다.다 르 면 프로 세 스 가 정상적으로 닫 히 거나 다시 불 러 올 수 없습니다.
3. 스 크 립 트 이름 은 uwsgisvr 를 / etc / init. d / 디 렉 터 리 에 저장 하고 실행 권한 을 설정 하 십시오.
#!/bin/bash
# chkconfig: 2345 55 25
# Description: Startup script for uwsgi webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f uwsgi defaults', or use the appropriate command on your
# 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() {
iniList=`$FindCmd $CONFIGDIR -name '*.ini'`
for i in ${iniList[@]}
do
SiteNameList=(${SiteNameList[@]} `basename $i|awk -F. '{print $1}'`)
done
}
function Start()
{
local c=0
for i in ${iniList[@]}
do
if $DAEMON $i; then
echo "${SiteNameList[$c]} started"
else
echo "${SiteNameList[$c]} already running"
fi
let ++c
done
}
function Stop()
{
local c=0
for i in ${SiteNameList[@]}
do
if $DAEMON --stop ${PIDDIR}${i}.pid; then
echo "${SiteNameList[$c]} stoped"
else
echo "${SiteNameList[$c]} not running"
fi
rm -f ${PIDDIR}${i}.pid
let ++c
done
}
function Reload()
{
local c=0
for i in ${SiteNameList[@]}
do
if $DAEMON --reload ${PIDDIR}${i}.pid; then
echo "${SiteNameList[$c]} reloaded"
else
echo "${SiteNameList[$c]} can't reload"
fi
let ++c
done
}
function Status()
{
ps aux|grep $DAEMON
echo
}
#main
set -e
[ -x "$DAEMON" ] || exit 0
Init
case "$1" in
status)
echo -en "Status $NAME:
" Status
;;
start)
echo -en "Starting $NAME:
"
Start
;;
stop)
echo -en "Stopping $NAME:
"
Stop
;;
reload|graceful)
echo -en "Reloading $NAME:
"
Reload
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2
exit 3
;;
esac
exit 0
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.