centos/rhel下实现nginx自启动脚本实例

所属分类: 脚本专栏 / linux shell 阅读数: 843
收藏 0 赞 0 分享

通常在centos、rhel的OS下,我们大多是通过chkconfig来管理服务,比如开机自动启动服务之类。
这里给大家介绍一个很好用的nginx启动脚本。以及简单的使用,如下:

1. 执行如下命令:

vim /etc/init.d/nginxd

2.输入如下内容:

注意:该文件中的如下几个变量,都需要根据你实际的目录来改写。

nginx="/usr/local/nginx/sbin/nginx"  ##nginx的可执行文件路径
lockfile="/var/nginx/nginx.lock"   ##需要先创建/var/nginx目录
NGINX_CONF_FILE="/etc/nginx/nginx.conf" ##需要先创建该配置文件
#!/bin/sh 
# 
# nginx - this script starts and stops the nginx daemon 
# 
# chkconfig:  - 85 15 
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \ 
#        proxy and IMAP/POP3 proxy server 
# processname: nginx 
# Source function library. 
. /etc/rc.d/init.d/functions 
# Source networking configuration. 
. /etc/sysconfig/network 
# Check that networking is up. 
[ "$NETWORKING" = "no" ] && exit 0 
nginx="/usr/local/nginx/sbin/nginx" 
prog=$(basename $nginx) 
sysconfig="/etc/sysconfig/$prog" 
lockfile="/var/nginx/nginx.lock" 
pidfile="/var/nginx/${prog}.pid" 
NGINX_CONF_FILE="/etc/nginx/nginx.conf" 
[ -f $sysconfig ] && . $sysconfig 
start() { 
  [ -x $nginx ] || exit 5 
  [ -f $NGINX_CONF_FILE ] || exit 6 
  echo -n $"Starting $prog: " 
  daemon $nginx -c $NGINX_CONF_FILE 
  retval=$? 
  echo 
  [ $retval -eq 0 ] && touch $lockfile 
  return $retval 
} 
stop() { 
  echo -n $"Stopping $prog: " 
  killproc -p $pidfile $prog 
  retval=$? 
  echo 
  [ $retval -eq 0 ] && rm -f $lockfile 
  return $retval 
} 
restart() { 
  configtest_q || return 6 
  stop 
  start 
} 
reload() { 
  configtest_q || return 6 
  echo -n $"Reloading $prog: " 
  killproc -p $pidfile $prog -HUP 
  echo 
} 
configtest() { 
  $nginx -t -c $NGINX_CONF_FILE 
} 
configtest_q() { 
  $nginx -t -q -c $NGINX_CONF_FILE 
} 
rh_status() { 
  status $prog 
} 
rh_status_q() { 
  rh_status >/dev/null 2>&1 
} 
# Upgrade the binary with no downtime. 
upgrade() { 
  local oldbin_pidfile="${pidfile}.oldbin" 
  configtest_q || return 6 
  echo -n $"Upgrading $prog: " 
  killproc -p $pidfile $prog -USR2 
  retval=$? 
  sleep 1 
  if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]]; then 
    killproc -p $oldbin_pidfile $prog -QUIT 
    success $"$prog online upgrade" 
    echo  
    return 0 
  else 
    failure $"$prog online upgrade" 
    echo 
    return 1 
  fi 
} 
# Tell nginx to reopen logs 
reopen_logs() { 
  configtest_q || return 6 
  echo -n $"Reopening $prog logs: " 
  killproc -p $pidfile $prog -USR1 
  retval=$? 
  echo 
  return $retval 
} 
case "$1" in 
  start) 
    rh_status_q && exit 0 
    $1 
    ;; 
  stop) 
    rh_status_q || exit 0 
    $1 
    ;; 
  restart|configtest|reopen_logs) 
    $1 
    ;; 
  force-reload|upgrade)  
    rh_status_q || exit 7 
    upgrade 
    ;; 
  reload) 
    rh_status_q || exit 7 
    $1 
    ;; 
  status|status_q) 
    rh_$1 
    ;; 
  condrestart|try-restart) 
    rh_status_q || exit 7 
    restart 
    ;; 
  *) 
    echo $"Usage: $0 {start|stop|reload|configtest|status|force-reload|upgrade|restart|reopen_logs}" 
    exit 2 
esac 

保存完毕之后,可以执行以下命令来启动nginx

chmod 777 /etc/init.d/nginxd 
/etc/init.d/nginxd start

3. 配置开机启动

执行以下命令:

chkconfig nginxd on

可以以下命令查看是否成功

chkconfig --list | grep nginxd

更多精彩内容其他人还在看

linux whatis与whatis database 使用及查询方法(man使用实例)

在学习man命令时候,估计很多朋友都发现有man –f ,man –k 参数,可以查出很多数据。这些有的与man手册页相同,有些不是属于手册页的。它们数据怎么收集来的,并且whatis是怎么样工作的
收藏 0 赞 0 分享

linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random)

这篇文章主要介绍了linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell命令快捷获得系统帮助(一)[man-pages定义规范]

linux命令帮助,一般有2种,命令自身代码里面带有使用帮助说明,这种一般很精简,太长了,程序自身的大小以及日常维护不方便。还有一种,就是带有帮助文件,类似windows的chm格式文件。下面我说下这2种怎么样查阅
收藏 0 赞 0 分享

linux shell实现随机数几种方法分享(date,random,uuid)

这篇文章主要介绍了linux shell实现随机数多种方法(date,random,uuid),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell 脚本实现tcp/upd协议通讯(重定向应用)

这篇文章主要介绍了linux shell 脚本实现tcp/upd协议通讯(重定向应用),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell数据重定向(输入重定向与输出重定向)详细分析

这篇文章主要介绍了linux shell数据重定向(输入重定向与输出重定向)详细分析,需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell 管道命令(pipe)使用及与shell重定向区别

这篇文章主要介绍了linux shell 管道命令(pipe)使用及与shell重定向区别,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux下使用tcpdump抓包的实现方法

tcpdump是Linux下面的一个开源的抓包工具,和Windows下面的wireshark抓包工具一样, 支持抓取指定网口、指定目的地址、指定源地址、指定端口、指定协议的数据。这篇文章主要介绍了Linux下使用tcpdump抓包的实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

零基础入门篇之Linux及Arm-Linux程序开发笔记

这篇文章主要介绍了零基础入门篇之Linux及Arm-Linux程序开发笔记,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux 中 CURL常用命令详解

这篇文章主要介绍了Linux 中 CURL常用命令详解,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多