CentOS 웹서비스 start stop 쉘스크립트
굳이 아파치랑 NGINX 를 시작 및 종료를 해주는 스크립트가 필요할까 싶지만, Let's encrypt 인증서 갱신시 웹서비스 포트가 사용중이면 갱신이 안되는 문제점이 있습니다.
pstree 로 웹서비스가 완전히 종료 되었는지 확인하고 종료되는 쉘스크립트입니다.
무한루프에 빠질수도 있기때문에 20초로 제한걸었습니다.
#!/bin/sh
CMD="$1"
LOGFILE="/root/web-service.log"
if [ -e "/usr/bin/systemctl" ] ; then
WEBCMD1="/usr/bin/systemctl $CMD nginx"
WEBCMD2="/usr/bin/systemctl $CMD httpd"
else
WEBCMD1="/sbin/service nginx $CMD"
WEBCMD2="/sbin/service httpd $CMD"
fi
if [ "$CMD" == "start" ] ; then
$WEBCMD1 >> $LOGFILE
$WEBCMD2 >> $LOGFILE
for i in {1..20}; do
PSD=`pstree | grep httpd | wc -l`
if [ $PSD -eq 1 ] ; then
echo "start" >> $LOGFILE
break;
else
echo "not run" >> $LOGFILE
sleep 1
fi
done
elif [ "$CMD" == "stop" ] ; then
$WEBCMD1 >> $LOGFILE
$WEBCMD2 >> $LOGFILE
for i in {1..20}; do
PSD=`pstree | grep httpd | wc -l`
if [ $PSD -eq 0 ] ; then
echo "stop" >> $LOGFILE
break;
else
echo "running" >> $LOGFILE
sleep 1
fi
done
else
exit
fi
20초 동안에 안되는 경우는 거의 없겠지만 사용자가 있다거나 그러면 정상동작하지 않을 수도 있습니다.
'LINUX' 카테고리의 다른 글
[리눅스] vnstat eth0 No such file or directory (1) | 2018.11.30 |
---|---|
[리눅스] 유저 홈페이지 Data 및 MySQL DB 백업 (0) | 2018.11.30 |
LETSENCRYPT SSL 인증서 자동갱신 쉘스크립트 (0) | 2018.11.30 |
저사양 VPS 스왑메모리 생성 스크립트 (0) | 2018.11.26 |
[CentOS] 초기 설치 상태로 초기화 방법 (0) | 2018.11.15 |