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

通常在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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索centos
, nginx
, 脚本
, rhel
自启动
centos7 nginx 自启动、centos nginx 自启动、nginx 开机自启动、nginx 自启动、nginx自启动脚本,以便于您获取更多的相关知识。

时间: 2024-09-26 03:13:28

centos/rhel下实现nginx自启动脚本实例_linux shell的相关文章

ssh远程执行命令方法和Shell脚本实例_linux shell

写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server 亲测!! ssh执行远程操作命令格式 复制代码 代码如下: ssh -p $port $user@$p 'cmd'    $port : ssh连接端口号  $user: ssh连接用户名  $ip:ssh连接的ip地址  cmd:远程服务器需要执行的操作  准备工作 基于公私钥认证或者用户

用shell脚本监控进程是否存在 不存在则启动的实例_linux shell

用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/sh ps -fe|grep processString |grep -v grep if [ $? -ne 0 ] then echo "start process....." else echo "runing....." fi ##### processString 表示进程特征字符串,能够查询到唯一进程的特征字符串 0表示存在的 $? -ne 0 不存在,$? -eq 0 存

Shell脚本检查IP格式及mysql操作实例_linux shell

还是cronjob的一部分,就是在Rails的定时任务里,后台交互运行 CheckIPAddress() { echo $1 |grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null if [ $? = 1 ]; then return 1 else a=`echo $1 | awk -F. '{print $1}'` b=`echo $1 | awk -F. '{print $2}'

CentOS下停止Tomcat运行脚本代码_Linux

代码验证通过,保留,以备后用 #!/bin/sh # # Firstly find the process of the tomcat.... TOMCAT_PROCESS_STR=`ps aux | grep 'java.*tomcat' | grep -v grep` PROCESS_ARRAY=(${TOMCAT_PROCESS_STR// / }) TOMCAT_PROCESS_ID=${PROCESS_ARRAY[1]} echo $TOMCAT_PROCESS_ID # # Seco

Nginx和PHP-FPM的启动、重启、停止脚本分享_linux shell

服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了.自己动手丰衣足食.以下脚本应该在RHEL, Fedora, CentOS下都适用. 一.Nginx启动脚本/etc/init.d/nginx 复制代码 代码如下: #!/bin/bash # # Startup script for Nginx - this script starts and stops th

Linux下一些常用的Shell脚本整理_linux shell

如何计算当前目录下的文件数和目录数         # ls -l * |grep "^-"|wc -l ---- to count files # ls -l * |grep "^d"|wc -l ----- to count dir         如何只列子目录?     ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux) ls -l | grep "^d" 或

判断文件是否存在的shell脚本代码_linux shell

实现代码一. #!/bin/sh # 判断文件是否存在 # link:www.jb51.net # date:2013/2/28 myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi # 这里的-d

Linux服务器硬件运行状态及故障邮件提醒的监控脚本分享_linux shell

监控硬件运行状况 shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员. 原理: 1.获取cpu,memory,load average的数值 2.判断数值是否超过自定义的范围,例如(CPU>90%,Memory<10%,load average>2) 3.如数值超过范围,发送电邮通知管理员.发送有时间间隔,每小时只会发送一次. 4.将数值写入log. 5.设置crontab 每30秒运行一次. ServerMonitor.sh #

实战模拟监控MySQL服务shell脚本小结_linux shell

1)端口判断法==>仅适合数据库本地使用 法1:if条件判断方法 [root@oldboy scripts]# cat check_db01.sh #!/bin/sh #created by oldboy #mail:oldboy521@gmail.com PortNum=`netstat -lnt|grep 3306|wc -l` if [ $PortNum -eq 1 ] then echo "mysqld is running." else echo "mysql