nginx啟停指令碼

2022-05-04 05:30:06 字數 3175 閱讀 1927

安裝nginx時,原始碼包中未帶官方的啟動指令碼,也就無法使用service nginxd start這種啟動方式,查了下資料自己寫了乙個:

#!/bin/bash

#@version:

0.0.1

#@author: lifafu

#@file:

#@time:

2017/02/04

08:00

#@company:

source /etc/profile #載入系統環境變數

source $home/.bash_profile #載入使用者環境變數

#set -o nounset #引用未初始化變數時終止執行,也可以set -u

#set -o errexit #執行任何語句返回非0狀態時終止執行,也可以set -e

# chkconfig: - 99

50# 雖然前面帶#號,是注釋,但要用chkconfig命令註冊開機啟動伺服器的話,該句必不可少,格式也不能錯!

# 3個chkconfig引數的含義:

# x:是指定該指令碼在哪個系統啟動級別下執行,比如你需要在3,

4,5上執行,那麼第二位就設定成345,我這裡用的是」-」,代表在2,3,4

,5上都執行

# y:系統啟動時,服務啟動順序,需要注意的是,有的程式依賴與別的程式的話,啟動順序就要注意了,比如a程式的啟動依賴於b程式的啟動,那麼a程式的這個值一定要比b程式大

# z:系統終止時,服務終止順序

# description: nginx is a high-performance web and proxy server.

# 該句也必不可少,理由同上,你程式的描述和簡介,而非本啟動指令碼

#設定變數

nginxd=/usr/local/nginx/sbin/nginx

nginx_config=/usr/local/nginx/conf/nginx.conf

nginx_pid=/usr/local/nginx/logs/nginx.pid

nginx_lock=/var/lock/subsys/nginx

#儲存退出狀態的變數,初始值為0(在linux一般0表示成功,表示ok,非0表示異常,不ok)

retyal=0

# 設定程式名稱

prog="

nginx

"# source

function

library.在當前shell中執行的函式庫檔案

# 在functions中定義了很多函式,在這裡可以呼叫,系統提供的函式檔案,這裡面實現了很多函式和環境變數,比如start的時候,紅色的字顯示ok就是這個檔案的功勞

. /etc/rc.d/init.d/functions

# source network configuration.載入網路配置

. /etc/sysconfig/network

# check that networking is up.

[ $ = "

no" ] && exit 0

# 定義啟動函式

start()

# 判斷配置檔案是否存在,否則異常退出

[ -f $nginx_config ] ||

# 判斷程式是否執行,否則異常退出

if [ -e $nginx_pid ];then

echo

"nginx already running....

"exit 1fi

# 判斷lock檔案是否存在,否則異常退出

if [ -e $nginx_lock ];then

echo

"nginx lock file does exist....

"exit 1fi

# 顯示資訊,依賴於. /etc/rc.d/init.d/functions

echo -n $"

starting $prog:

"# 建立pid資料夾

dir=$(dirname

$nginx_pid)

[ -d $dir ] || mkdir -p $dir

# 呼叫functions裡的daemon函式來啟動nginx,daemon()函式主要用於希望脫離控制台,以守護程序形式在後台執行的程式

daemon --pidfile $nginx_pid $nginxd -c $

# 把daemon函式呼叫的結果儲存到retval裡

retval=$?

echo

# 判斷retvalr值,如果是0執行成功,則生成鎖檔案,鎖檔案主要用來判斷程式是否執行

[ $retval = 0 ] && touch

$nginx_lock

#終止函式,並返回$retval的值,通常用於函式的結束, 本身這段**也是個函式,所以我們也要返回,返回retval的值

return $retval

}# 定義停止函式

stop()

reload() `

killproc -p $nginx_pid $prog -hup

retval=$?

echo

}#see how we were called.

case"$1

"instart)

start

;;stop)

stop

;;reload)

reload

;;restart)

stop

start

;;#status在. /etc/rc.d/init.d/functions裡有定義

status)

status $prog

retval=$?;;

#輸入其他內容提示以下內容

*)echo $"

usage:$prog

"exit

1esac

exit $retval

儲存為nginxd,複製到/etc/init.d/中並賦予執行許可權就可以使用service nginxd start等命令了;

如果需要加入開機啟動:chkconfig --add nginxd;chkconfig nginxd on;

啟停程式也可以使用類似的方式自己編寫啟動指令碼,不過這種方式還是有缺陷,就是必須使用root使用者執行這類指令碼。

編寫Nginx啟停服務指令碼

在 etc init.d 目錄下建立指令碼 vim etc init.d nginx編寫指令碼內容 其中下面2行需要根據情況自行修改 nginxd opt nginx sbin nginx nginx config opt nginx conf nginx.conf 更改指令碼許可權 chmod 7...

編寫Nginx啟停服務指令碼

在 etc init.d 目錄下建立指令碼 vim etc init.d nginx編寫指令碼內容 其中下面2行需要根據情況自行修改 nginxd opt nginx sbin nginx nginx config opt nginx conf nginx.conf 更改指令碼許可權 chmod 7...

SVN啟停指令碼

說明 特別注意紅色部分,外部 1傳入msg函式時失效,故特此讀取一遍再傳入!執行時要給指令碼加執行許可權!chmod 755 scripts svn root kazihuo scripts cat svn 1 bin bash 2 by luomurui 2018 05 07 34 f etc i...