千家信息网

shell如何编写nginx服务启动程序

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章为大家展示了shell如何编写nginx服务启动程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用源码包安装的Nginx没办法使用"service
千家信息网最后更新 2025年12月02日shell如何编写nginx服务启动程序

本篇文章为大家展示了shell如何编写nginx服务启动程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的服务控制 脚本 。

选项有:

  start    启动  stop    停止  reload   重载  restart    重启  status   状态  test    检查配置文件

脚本 一

创建脚本文件并添加执行权限

  touch /etc/init.d/nginx  chmod +x /etc/init.d/nginx

编写脚本内容

  #!/bin/bash  # chkconfig: - 85 15  # description: Nginx server control script  # processname: nginx  # config file: /usr/local/nginx/conf/nginx.conf  # pid file: /usr/local/nginx/logs/nginx.pid  #  # eastmoney public tools  # version: v1.0.0  # create by XuHoo, 2016-9-14  #  # source function library  . /etc/rc.d/init.d/functions  NGINX_NAME="nginx"  NGINX_PROG="/usr/local/sbin/nginx"  NGINX_PID_FILE="/usr/local/nginx/logs/nginx.pid"  NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"  NGINX_LOCK_FILE="/var/lock/subsys/nginx.lock"  # check current user  [ "$USER" != "root" ] && exit 1  start() {  status  if [[ $? -eq 0 ]]; then  echo $"Nginx (PID $(cat $NGINX_PID_FILE)) already started."  return 1  fi  echo -n $"Starting $NGINX_NAME: "  daemon $NGINX_PROG -c $NGINX_CONF_FILE  retval=$?  echo  [ $retval -eq 0 ] && touch $NGINX_LOCK_FILE  return $retval  }  stop() {  status  if [[ $? -eq 1 ]]; then  echo "Nginx server already stopped."  return 1  fi  echo -n $"Stoping $NGINX_NAME: "  killproc $NGINX_PROG  retval=$?  echo  [ $retval -eq 0 ] && rm -f $NGINX_LOCK_FILE  return $retval  }  restart() {  stop  sleep 1  start  retval=$?  return $retval  }  reload() {  echo -n $"Reloading $NGINX_NAME: "  killproc $NGINX_PROG -HUP  retval=$?  echo  return $retval  }  status() {  netstat -anpt | grep "/nginx" | awk '{print $6}' &> /dev/null  if [[ $? -eq 0 ]]; then  if [[ -f $NGINX_LOCK_FILE ]]; then  return 0  else  return 1  fi  fi  return 1  }  _status() {  status  if [[ $? -eq 0 ]]; then  state=`netstat -anpt | grep "/nginx" | awk '{ print $6 }'`  echo $"Nginx server status is: $state"  else  echo "Nginx server is not running"  fi  }  test() {  $NGINX_PROG -t -c $NGINX_CONF_FILE  retval=$?  return $retval  }  case "$1" in  start)  start  ;;  stop)  stop  ;;  reload)  reload  ;;  restart)  restart  ;;  status)  _status  ;;  test)  test  ;;  *)  echo "Usage: { start | stop | reload | restart | status | test }"  exit 1  esac

将脚本添加到系统服务并设置开机启动

  chkconfig --add nginx  chkconfig --level 3 nginx on

脚本二

  [root@localhost ~]# cd /usr/local/nginx/conf/  [root@localhost conf]# ls  fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf  fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default

备份主配置文件

  [root@localhost conf]# cp nginx.conf nginx.conf.origin  [root@localhost conf]# vim nginx.conf  去除#pid logs/nginx.pid;前面#号
  [root@localhost conf]# netstat -anpt | grep 80  tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19108/nginx  [root@localhost conf]# kill -3 19108  [root@localhost conf]# netstat -anpt | grep 80  [root@localhost conf]# nginx  [root@localhost conf]# netstat -anpt | grep 80  tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19864/nginx  [root@localhost conf]# cd ../logs/  [root@localhost logs]# ls  access.log error.log nginx.pid  [root@localhost logs]# cat nginx.pid  19864

编辑写服务脚本

  [root@localhost ~]# vim /etc/init.d/nginx  可以使用的选项有:  start    启动  stop    停止  reload   重载  restart    重启  status   状态  test    检查配置文件
  #!/bin/bash  #chkconfig: 2345 99 20  #description:Nginx Server Control Scripts shell  PROG="/usr/local/nginx/sbin/nginx"  PIDF="/usr/local/nginx/logs/nginx.pid"  case "$1" in  start)  if [ -f $PIDF ];  then  echo "Nginx正在运行…"  else  $PROG  fi  ;;  stop)  if [ -f $PIDF ];  then  kill -3 $(cat $PIDF)  rm -f $PIDF  else  echo "Nginx正在停止…"  fi  ;;  restart)  $0 stop  $0 start  ;;  reload)  if [ -f $PIDF ];  then  kill -1 $(cat $PIDF)  else  echo "Nginx正在停止…重新加载"  fi  ;;  status)  if [ -f $PIDF ];  then  echo "Nginx正在运行"  else  echo "Nginx停止"  fi  ;;  *)  echo "Usage: $0 (start|stop|restart|reload|status)"  exit 1  esac  exit 0

脚本文件并添加执行权限

  [root@localhost ~]# chmod +x /etc/init.d/nginx    将脚本添加到系统服务并设置开机启动  [root@localhost ~]# chkconfig --add nginx  添加为服务启动项  [root@localhost ~]# chkconfig --list nginx  nginx 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭  [root@localhost ~]# chkconfig --level 3 nginx on  测试脚本是否能够执行  [root@localhost ~]# service nginx start  Nginx正在运行…  [root@localhost ~]# service nginx restart  [root@localhost ~]# service nginx stop  [root@localhost ~]# service nginx stop  Nginx正在停止…  [root@localhost ~]# service nginx start  [root@localhost ~]# service nginx status  Nginx正在运行

上述内容就是shell如何编写nginx服务启动程序,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

脚本 服务 正在 文件 运行 内容 配置 程序 技能 权限 状态 知识 系统 控制 检查 简明 简明扼要 办法 备份 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 大功率服务器电源 服务器管理信息表 华为服务器删除阵列无法识别硬盘 全球网络安全监控网址 服务器开机不了原因 迷你世界怎么免费开服务器电脑版 贝凡互联网科技 云浮 计算机网络技术 职业定位 打印机代理服务器设置警告 大型系统平台软件开发费标准 百度数据库的优缺点 负责信息网络技术相关工作 主机如何访问虚拟机数据库 互联网科技语录 网络安全概论教程智慧树期末考试 三大网络安全系统 电脑网络安全介绍 windows远控软件开发 澳门买华为手机如何连接服务器 东方财富爬虫 数据库 武汉好未来网络技术有限公司 我国网络安全保护的方针是 杭州4年软件开发工资 可以合成视频的手机软件开发 游戏里开服务器 如何提升自己的网络安全性 工业网络安全隔离网关SAP 飞控软件和软件开发 为什么计算机里找不到数据库服务 网络安全中人的作用
0