主页 > 知识库 > 服务器 > 服务器综合 >

Nginx启动脚本

来源: 作者: 发表于:2012-10-15 12:59  点击:
副标题#e# Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。因稳定性、丰富的功能、低资源消耗而闻名。但Nginx本身不自带启动脚本,需要我们手动编写一份,现在网上所提供的大多数脚本都是有针对行的,可移植性很

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。因稳定性、丰富的功能、低资源消耗而闻名。 但Nginx本身不自带启动脚本,需要我们手动编写一份,现在网上所提供的大多数脚本都是有针对行的,可移植性很差。 大多数这样的脚本依赖于系统中functions函数,但该函数仅在个别系统中存在。 为了使脚本更加通用,以下编写的脚本可以很轻松的移植到各种Unix、Linux系统中,同时还兼容CentOS的chkconfig功能。 测试证明无需修改即可在CentOS、Ubuntu、FreeBSD上测试运行正常。 脚本的思路是通过nginx.pid文件来判断进程是否启动,当然如果你看了http://manual.blog.51cto.com/3300438/932958这篇文章,就可以通过awk过滤端口号判断进程是否开启,效果更好。 脚本提供了Nginx所支持的6种进程管理信号中的4种启动用控制信号,同时额外附件了一个查看进程状态的功能。 脚本全文如下:[root@centos6 ~] cat /etc/init.d/nginx

  1. #!/bin/sh

  2. #

  3. # Startup script for the Nginx

  4. # chkconfig: - 88 63

  5. # description: Nginx is a free,open-source,high-performance HTTP Server and reverse proxy.

  6. # program:/usr/local/nginx/sbin/nginx

  7. # config:/usr/local/nginx/conf/nginx.conf

  8. # pidfile:/usr/local/nginx/logs/nginx.pid

  9. # Synopsis:

  10. #        nginx [--help] [--version] {start|stop|restart|reload|status|update}

  11. # Define variable

  12. nginx=/usr/local/nginx/sbin/nginx

  13. pidfile=/usr/local/nginx/logs/nginx.pid

  14. PROGRAM=`basename $0`

  15. VERSION=1.0

  16. # Functions

  17. usage(){

  18.    echo "Usage: $PROGRAM [--help] [--version] {start|stop|restart|reload|status|update}"

  19. }

  20. version(){

  21.    echo "Version:$VERSION"

  22. }

  23. start(){

  24. if [ -e $pidfile ]

  25.   then

  26.    echo "Nginx already running..."

  27.   else

  28.    echo -e "Starting Nginx:tttttttc"

  29.    /usr/local/nginx/sbin/nginx

  30.    echo -e "[ c"

  31.    echo -e "33[0;32mOK33[0mc"

  32.    echo -e " ]c"

  33.    echo -e "r"

  34. fi

  35. }

  36. stop(){

  37. if [ -e $pidfile ]

  38.   then

  39.    echo -e "Stopping Nginx:tttttttc"

  40.    kill -QUIT `cat ${pidfile}`

  41.    echo -e "[ c"

  42.    echo -e "33[0;32mOK33[0mc"

  43.    echo -e " ]c"

  44.    echo -e "r"

  45.   else

  46.    echo "Nginx already stopped..."

  47. fi

  48. }

  49. reload(){

  50. if [ -e $pidfile ]

  51.   then

  52.    echo -e "Reloading Nginx:ttttttc"

  53.    kill -HUP `cat ${pidfile}`

  54.    echo -e "[ c"

  55.    echo -e "33[0;32mOK33[0mc"

  56.    echo -e " ]c"

  57.    echo -e "r"

  58.   else

  59.    echo "Nginx is not running..."

  60. fi

  61. }

  62. status(){

  63.    if [ -e $pidfile ]

  64.       then

  65.        PID=`cat $pidfile`

  66.        echo  "Nginx (pid $PID) is running..."

  67.       else

  68.        echo  "Nginx is stopped"

  69.    fi

  70. }

  71. update(){

  72. if [ -e $pidfile ]

  73.   then

  74.    echo -e "Updateing Nginx:ttttttc"

  75.    kill -USR2 `cat ${pidfile}`

  76.    echo -e "[ c"

  77.    echo -e "33[0;32mOK33[0mc"

  78.    echo -e " ]c"

  79.    echo -e "r"

  80.   else

  81.    echo "Nginx is not running..."

  82. fi

  83. }

  84. if [ $# -gt 0 ]

  85.   then

  86.    case $1 in

  87.        start)

  88.            start

  89.            ;;

有帮助
(0)
0%
没帮助
(0)
0%