为编译安装的nginx提供init服务控制脚本

生产环境中nginx多为编译安装,但源码包不提供init脚本

从这里下载相应系统的脚本:http://wiki.nginx.org/InitScripts,并作简单修改

修改后内容如下

  1 #!/bin/bash
  2 #
  3 # nginx - this script starts and stops the nginx daemon
  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
 11 # Source function library.
 12 . /etc/rc.d/init.d/functions
 13
 14 # Source networking configuration.
 15 . /etc/sysconfig/network
 16
 17 # Check that networking is up.
 18 [ "$NETWORKING" = "no" ] && exit 0
 19
 20 nginx="/usr/local/nginx/sbin/nginx"                #nginx启动文件位置
 21 prog=$(basename $nginx)
 22
 23 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" #配置文件
 24
 25
 26 lockfile=/usr/local/nginx/logs/nginx               #锁文件
 27
 28
 29 start() {
 30     [ -x $nginx ] || exit 5
 31     [ -f $NGINX_CONF_FILE ] || exit 6
 32     echo -n $"Starting $prog: "
 33     daemon $nginx -c $NGINX_CONF_FILE
 34     retval=$?
 35     echo
 36     [ $retval -eq 0 ] && touch $lockfile
 37     return $retval
 38 }
 39
 40 stop() {
 41     echo -n $"Stopping $prog: "
 42     killproc $prog -QUIT
 43     retval=$?
 44     echo
 45     [ $retval -eq 0 ] && rm -f $lockfile
 46     return $retval
 47 }
 48
 49 restart() {
 50     configtest || return $?
 51     stop
 52     sleep 1
 53     start
 54 }
 55
 56 reload() {
 57     configtest || return $?
 58     echo -n $"Reloading $prog: "
 59     killproc $nginx -HUP
 60     RETVAL=$?
 61     echo
 62 }
 63
 64 force_reload() {
 65     restart
 66 }
 67
 68 configtest() {
 69   $nginx -t -c $NGINX_CONF_FILE
 70 }
 71
 72 rh_status() {
 73     status $prog
 74 }
 75
 76 rh_status_q() {
 77     rh_status >/dev/null 2>&1
 78 }
 79
 80 case "$1" in
 81     start)
 82         rh_status_q && exit 0
 83         $1
 84         ;;
 85     stop)
 86         rh_status_q || exit 0
 87         $1
 88         ;;
 89     restart|configtest)
 90         $1
 91         ;;
 92     reload)
 93         rh_status_q || exit 7
 94         $1
 95         ;;
 96     force-reload)
 97         force_reload
 98         ;;
 99     status)
100         rh_status
101         ;;
102     condrestart|try-restart)
103         rh_status_q || exit 0
104             ;;
105     *)
106         echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
107         exit 2
108 esac
 
时间: 2024-11-07 09:37:49

为编译安装的nginx提供init服务控制脚本的相关文章

LNMP编译安装之nginx关联php--图文详解

LNMP编译安装之nginx关联php--图文详解 1.前言 之前已经介绍了nginx,php,mysql的编译安装过程,但nginx和php的关联没有涉及,导致网页不能正常使用php功能,所有本编介绍如何将nginx和php进行关联,使*.php文件可以正常在浏览器访问. 2.准备步骤 2.1.修改php-fpm配置文件 cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.confcp /usr/loc

使用Nginx提供web服务

Nginx是由俄罗斯人开发的HTTP服务器,功能很多,本文主要使用其提供web服务.安装方式为编译安装.本文使用的程序版本及系统环境如下: 操作系统:centos6.6 x86_64 Nginx:nginx-1.8.0 一.编译安装Nginx  需要先安装包组"Development tools"和"Server Platform Development".另外因为默认的编译选项里支持URL重写功能,所以要安装pcre-devel. groupadd -r ngin

Nginx提供网站服务应用包括(虚拟主机、用户访问控制、用户验证、nginx平滑升级、防盗链)的配置

Nginx   开源且跨平台的软件    俄罗斯人开发的   提供网站服务  和  代理服务 Nginx 提供网站服务应用环境? 1.虚拟主机2.用户访问控制3.用户验证4.防盗链 实验环境: 安装软件:nginx-0.855.tar.gz 操作系统:centos6.5 实验:(一) 实验目的:nginx源码包的安装以及基本的使用. 安装源码包要安装的工具:开发工具 和开发环境 1.安装nginx源码包 建立ngix软件夹用来存放nginx软件包 添加一个进程的所有者和所属组为www,www为n

LNMP编译安装之nginx安装--图文详解

LNMP编译安装之nginx安装--图文详解 1.前言 本次安装采用源码安装,主要资源包从官网下载,次要依赖则使用yum进行安装,本篇只涉及nginx的安装,不涉及nginx的配置,对应nginx如何访问php,本篇也不涉及.该教程纯属安装,不涉及任何重要知识点,老少皆宜. 2.安装步骤 nginx官网:http://nginx.org/en/download.html 2.1.下载nginx wget http://nginx.org/download/nginx-1.12.0.tar.gz

利用BashShell编写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

linux下nginx启动停止重启控制脚本

这是控制nginx服务的脚本文件,包括控制nginx的启动.重启.停止.平滑重启.对配置文件的额检查. [[email protected] ~]# cat nginx.sh #!/bin/env bash # description:nginx server   ###必须加描述 # nginx - this script is used to control nginx service # processname nginx # chkconfig: - 85 15 # edit by su

运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析

运维经验分享作为一个专题,目前共7篇文章 <运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本> <运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化> <运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)> <运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析> <运维经验分享(五)-- 改进的java进程管

Linux Shell之ChatterServer服务控制脚本

本脚本是ChatterServer的服务控制脚本,即能通过service命令来控制ChatterServer的启动.停止.重新启动以及状态查看,就像mysql有/etc/init.d/mysql或/etc/init.d/mysqld一样,只是这个ChatterServer的服务控制脚本写起来更加困难,有些信息的捕获和判断更加复杂,原因还是主要与ChatterServer的运行方式和启动过程中发生的一些事情有关,这个在脚本的注释中已经充分的标注清楚了. 由于ChatterServer运行在Ubun

运维经验分享(七)-- Linux Shell之ChatterServer服务控制脚本第三次优化

运维经验分享作为一个专题,目前共7篇文章 <运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本> <运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化> <运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)> <运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析> <运维经验分享(五)-- 改进的java进程管