SHELL編寫NGINX服務控制指令碼,shell編寫nginx指令碼

來源:互聯網
上載者:User

SHELL編寫NGINX服務控制指令碼,shell編寫nginx指令碼

使用源碼包安裝的Nginx沒辦法使用"service nginx start"或"/etc/init.d/nginx start"進行操作和控制,所以寫了以下的服務控制指令碼。

可以使用的選項有:

start     啟動

stop     停止

reload   重載

restart    重啟

status    狀態

test    檢查設定檔

 

1、建立指令碼檔案並添加執行許可權

# touch /etc/init.d/nginx# chmod +x /etc/init.d/nginx

 

2、編寫指令碼內容

#!/bin/bash# chkconfig: - 85 15# description: Nginx server control script# processname: nginx# config file: /usr/local/nginx/conf/nginx.conf# pid file: /usr/local/nginx/logs/nginx.pid# # eastmoney public tools# version: v1.0.0# create by XuHoo, 2016-9-14# # source function library. /etc/rc.d/init.d/functionsNGINX_NAME="nginx"NGINX_PROG="/usr/local/sbin/nginx"NGINX_PID_FILE="/usr/local/nginx/logs/nginx.pid"NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"NGINX_LOCK_FILE="/var/lock/subsys/nginx.lock"# check current user[ "$USER" != "root" ] && exit 1start() {    status        if [[ $? -eq 0 ]]; then            echo $"Nginx (PID $(cat $NGINX_PID_FILE)) already started."            return 1        fi    echo -n $"Starting $NGINX_NAME: "        daemon $NGINX_PROG -c $NGINX_CONF_FILE        retval=$?        echo    [ $retval -eq 0 ] && touch $NGINX_LOCK_FILE    return $retval}stop() {    status        if [[ $? -eq 1 ]]; then            echo "Nginx server already stopped."            return 1        fi    echo -n $"Stoping $NGINX_NAME: "        killproc $NGINX_PROG        retval=$?        echo    [ $retval -eq 0 ] && rm -f $NGINX_LOCK_FILE    return $retval}restart() {    stop        sleep 1    start    retval=$?    return $retval}reload() {    echo -n $"Reloading $NGINX_NAME: "        killproc $NGINX_PROG -HUP        retval=$?        echo    return $retval}status() {    netstat -anpt | grep "/nginx" | awk '{print $6}' &> /dev/null        if [[ $? -eq 0 ]]; then            if [[ -f $NGINX_LOCK_FILE ]]; then                return 0            else                return 1            fi        fi    return 1}_status() {    status        if [[ $? -eq 0 ]]; then            state=`netstat -anpt | grep "/nginx" | awk '{ print $6 }'`            echo $"Nginx server status is: $state"        else            echo "Nginx server is not running"        fi}test() {    $NGINX_PROG -t -c $NGINX_CONF_FILE        retval=$?    return $retval}case "$1" in    start)        start        ;;    stop)        stop        ;;    reload)        reload        ;;    restart)        restart        ;;    status)        _status        ;;    test)        test        ;;    *)        echo "Usage: { start | stop | reload | restart | status | test }"        exit 1esac

 

3、將指令碼添加到系統服務並設定開機啟動

# chkconfig --add nginx# chkconfig --level 3 nginx on

 

4、測試指令碼是否能夠執行

運行命令: service nginx start 或 /etc/init.d/nginx start

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.