nginx启动脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx启动脚本相关的知识,希望对你有一定的参考价值。

参考技术A

#!/bin/sh

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

case $1 in

start)

if [ -f /usr/local/nginx/logs/nginx.pid ]; then

action "nginx is running" /bin/false

# echo_failure

# echo "nginx is running"

else

/usr/local/nginx/sbin/nginx

# echo_success

# echo "nginx is starting"

action "nginx is starting..." /bin/true

fi

;;


stop)

if [ -f /usr/local/nginx/logs/nginx.pid ]; then

pkill nginx

action "nginx is stopping..." /bin/true

# echo_success

# echo "nginx is stopped"

else


action "nginx is not started" /bin/false

# echo_failure

# echo "nginx is not started"

fi

;;

restart)

if [ -f /usr/local/nginx/logs/nginx.pid ]; then

pkill nginx

action "nginx is stopping..." /bin/true

# echo_success

# echo "nginx is stopped"

sleep 2

# /usr/local/nginx/sbin/nginx -s reload

action "nginx is restarting..." /bin/true

/usr/local/nginx/sbin/nginx

# echo_success

# echo "nginx is restarted"

else

action "nginx is not running" /bin/false

# echo_failure

# echo "nginx is not running"

sleep 2

# /usr/local/nginx/sbin/nginx -s reload

action "nginx is restarting..." /bin/true

/usr/local/nginx/sbin/nginx

# echo_success

# echo "nginx is started"

fi

;;

*)

echo "please input \'sh $0 start|stop|status|restart\'"

;;

esac

Nginx 启动脚本/重启脚本

第一步

先运行命令关闭nginx

 

[plain] view plain copy
  1. sudo kill `cat /usr/local/nginx/logs/nginx.pid`  


第二步

 

 

[html] view plain copy
  1. vi /etc/init.d/nginx  


输入以下内容

 

 

[plain] view plain copy
  1. #!/bin/sh  
  2. #  
  3. # nginx - this script starts and stops the nginx daemin  
  4. #  
  5. # chkconfig:   - 85 15  
  6. # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \  
  7. #               proxy and IMAP/POP3 proxy server  
  8. # processname: nginx  
  9. # config:      /usr/local/nginx/conf/nginx.conf  
  10. # pidfile:     /usr/local/nginx/logs/nginx.pid  
  11.   
  12. # Source function library.  
  13. . /etc/rc.d/init.d/functions  
  14.   
  15. # Source networking configuration.  
  16. . /etc/sysconfig/network  
  17.   
  18. # Check that networking is up.  
  19. [ "$NETWORKING" = "no" ] && exit 0  
  20.   
  21. nginx="/usr/local/nginx/sbin/nginx"  
  22. prog=$(basename $nginx)  
  23.   
  24. NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"  
  25.   
  26. lockfile=/var/lock/subsys/nginx  
  27.   
  28. start() {  
  29.     [ -x $nginx ] || exit 5  
  30.     [ -f $NGINX_CONF_FILE ] || exit 6  
  31.     echo -n $"Starting $prog: "  
  32.     daemon $nginx -c $NGINX_CONF_FILE  
  33.     retval=$?  
  34.     echo  
  35.     [ $retval -eq 0 ] && touch $lockfile  
  36.     return $retval  
  37. }  
  38.   
  39. stop() {  
  40.     echo -n $"Stopping $prog: "  
  41.     killproc $prog -QUIT  
  42.     retval=$?  
  43.     echo  
  44.     [ $retval -eq 0 ] && rm -f $lockfile  
  45.     return $retval  
  46. }  
  47.   
  48. restart() {  
  49.     configtest || return $?  
  50.     stop  
  51.     start  
  52. }  
  53.   
  54. reload() {  
  55.     configtest || return $?  
  56.     echo -n $"Reloading $prog: "  
  57.     killproc $nginx -HUP  
  58.     RETVAL=$?  
  59.     echo  
  60. }  
  61.   
  62. force_reload() {  
  63.     restart  
  64. }  
  65.   
  66. configtest() {  
  67.   $nginx -t -c $NGINX_CONF_FILE  
  68. }  
  69.   
  70. rh_status() {  
  71.     status $prog  
  72. }  
  73.   
  74. rh_status_q() {  
  75.     rh_status >/dev/null 2>&1  
  76. }  
  77.   
  78. case "$1" in  
  79.     start)  
  80.         rh_status_q && exit 0  
  81.         $1  
  82.         ;;  
  83.     stop)  
  84.         rh_status_q || exit 0  
  85.         $1  
  86.         ;;  
  87.     restart|configtest)  
  88.         $1  
  89.         ;;  
  90.     reload)  
  91.         rh_status_q || exit 7  
  92.         $1  
  93.         ;;  
  94.     force-reload)  
  95.         force_reload  
  96.         ;;  
  97.     status)  
  98.         rh_status  
  99.         ;;  
  100.     condrestart|try-restart)  
  101.         rh_status_q || exit 0  
  102.             ;;  
  103.     *)  
  104.         echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"  
  105.         exit 2  
  106. esac  

 

 

保存退出

第三步

[html] view plain copy
  1. chmod +x /etc/init.d/nginx  


第四步

 

[plain] view plain copy
  1. /sbin/chkconfig nginx on  

 

 

检查一下

 

[plain] view plain copy
  1. sudo /sbin/chkconfig --list nginx  
  2. nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off  

 

 

完成!

之后,就可以使用以下命令了

[plain] view plain copy
    1. service nginx start  
    2. service nginx stop  
    3. service nginx restart  
    4. service nginx reload  
    5.   
    6. /etc/init.d/nginx start  
    7. /etc/init.d/nginx stop  
    8. /etc/init.d/nginx restart  
    9. /etc/init.d/nginx reload  

以上是关于nginx启动脚本的主要内容,如果未能解决你的问题,请参考以下文章

简单的nginx启动脚本

Nginx-启动脚本

Nginx 启动脚本

nginx启动脚本编写及设置开机自启动

nginx编译安装服务启动脚本在哪

Nginx 启动脚本