셸 스 크 립 트 nginx 설치 및 시작 닫 기 nginx

12776 단어
nginx
전제: yum 소스 설정 완료, wget 명령 정상 사용, 장치 외부 네트워크 가능
스 크 립 트 는 다음 과 같 습 니 다:
#!/bin/bash
#Author: Jiangfeng
#Created Time: 2019/08/03
#nginx service manage script

#    
softname=nginx-1.17.2.tar.gz
soft=nginx-1.17.2

#    Nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.17.2.tar.gz
tar xf $softname
if [ $? != 0 ];then
    echo "       ,   wget    "
    exit 1
fi
#    
cd $soft
yum install -y pcre-devel zlib-devel openssl-devel gcc
if [ $? != 0 ];then
    echo "       ,   yum"
    exit 2
fi

#  
./configure --prefix=/usr/local/nginx --with-http_ssl_module


if [ $? != 0 ];then
    echo "$soft     "
    exit 3
fi

#    
make && make install

if [ $? != 0 ];then
    echo "    "
    exit 4


cd /usr/local/src
rm -f $softname
rm -rf $soft

2. 셸 스 크 립 트 로 nginx 시작 | 닫 기 | 재 부팅 | 프로필 다시 불 러 오기 (reload) | 상태 보기
전제: nginx 설치 완료 및 / usr / local 디 렉 터 리 에서
         스 크 립 트 이름 은 "nginx" 입 니 다. / etc / init. d / 디 렉 터 리 에 놓 습 니 다.
사용 방법:
/etc/init.d/nginx start|stop|restart|reload|status
스 크 립 트 는 다음 과 같 습 니 다:
#!/bin/bash
#Author: Jiangfeng
#Created Time: 2019/08/03
#nginx service manage script

#variable
##nginx    
nginx_path=/usr/local/nginx
##nginx      
nginxd=$nginx_path/sbin/nginx
##nginx       PID   
nginx_pid_file=$nginx_path/logs/nginx.pid


#  shell    
if [ -f /etc/init.d/functions ];then
  . /etc/init.d/functions
else
  echo "not find file:/etc/init.d/functions"
  eixt 1
fi

# nginx PID        
if [ -f $nginx_pid_file ];then
  pid=`cat $nginx_pid_file`
  nginx_process_num=`ps -ef  | grep $pid | grep -v "grep" | wc -l`
fi


#    
##Nginx     
start () {
##  nginx     
if [ -f $nginx_pid_file ] && [ $nginx_process_num -ne 0 ];then
  echo "Nginx      "
else
##  pid    ,      ,          nginx,  pid        ,    nginx       pid  
  if [ -f $nginx_pid_file ] && [ $nginx_process_num -eq 0 ];then
    rm -f $nginx_pid_file
    action "nginx start" $nginxd
  fi
  action "nginx start" $nginxd
fi

}

##Nginx    
stop () {
##  Nginx      ,         
if [ -f $nginx_pid_file ] && [ $nginx_process_num -eq 0 ];then
  echo "Nginx      "
  exit 2
else
  action "nginx stop" killall -s QUIT nginx
  rm -f $nginx_pid_file
fi

}

##Nginx    
restart () {
stop
sleep 1
start
if [ $? -eq 0 ];then
  action "nginx     "
fi
}
##        ,    pid
reload () {
if [ -f $nginx_pid_file ] && [ $nginx_process_num -ne 0 ];then
  action "nginx reload" killall -s HUP nginx
else
  echo "Nginx    "
fi
}

##  Nginx    
status () {
tmp=`mktemp nginx.XXXX`
curl -s -I 127.0.0.1 1> $tmp
#curl -I 127.0.0.1 > $tmp &>/dev/null
sed -i "s/\r//" $tmp
val=`grep "HTTP" $tmp | cut -d ' ' -f3`
if [ "$val" == "OK" ];then
  echo "Nginx start"
else
  echo "Nginx stop"
fi
rm -f $tmp
}


#main
case $1 in 
start) start;;
stop) stop;;
restart) restart;;
reload) reload;;
status) status;;
*) echo "USAGE: $0 start|stop|restart|reload|status";;
esac

다음으로 전송:https://www.cnblogs.com/feng0919/p/11313648.html

좋은 웹페이지 즐겨찾기