注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

Nginx启动管理脚本—PHP管理linux系统 (转)  

2013-05-25 15:26:38|  分类: html5-webapp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
nginx启动管理脚本简介 该脚本完全使用PHP写成的,支持启动,停止,重新加载配置文件,重新启动,重新打开日志文件以及查看nginx的运...
 一、nginx启动管理脚本简介
        该脚本完全使用PHP写成的,支持启动,停止,重新加载配置文件,重新启动,重新打开日志文件以及查看nginx的运行状态。
二、nginx启动管理脚本的使用
        跟其它脚本使用一样,可以使用service,也可以支持绝对路径,如/etc/init.d
        同时也支持chkconfig
        开头的#!指定正确的php路径或者在/bin目录下建立软连接
        使用时,nginx的pid文件绝对路径写入变量$pid_file,执行文件的绝对路径写入变量$exec_file
三、nginx启动管理脚本的参数介绍
        Arguement error.Usage /etc/init.d/nginx: {start | stop | reload | restart | status | logrot}
        start:启动
        stop:停止
        reload:重加载配置文件
        restart:重启
        status:运行状态查看
        logrot:重打开日志文件
四、nginx启动管理脚本的具体内容
#!/bin/php
<?php
# chkconfig: 345 73 79
# Description: nginx

   $exec_file = "/usr/local/webserver/nginx/sbin/nginx";
   $pid_file  = "/usr/local/webserver/nginx/logs/nginx.pid";
   $nginx_pid = file_exists("$pid_file") ? file_get_contents("$pid_file") : "";

   function start($nginx_pid,$exec_file) {
      if (@posix_kill($nginx_pid,0)) {
         echo "Nginx is already running...\n";
      } else {
         echo "Starting nginx...";
         system($exec_file,$stat);
         echo $stat ? "" : "Done.\n";
      }
   }

   function stop($nginx_pid,$exec_file) {
      if ($nginx_pid) {
         echo "Graceful shutdown nginx...";
         @posix_kill($nginx_pid,3);
         echo "Done.\n";
      } else {
         echo "Nginx is not running...\n";
      }
   }

   function reload($nginx_pid,$exec_file) {
      if ($nginx_pid) {
         echo "Graceful reload nginx configuration...";
         @posix_kill($nginx_pid,1);
         echo "Done.\n";
      } else {
         start($nginx_pid,$exec_file);
      }
   }

   function restart($nginx_pid,$exec_file,$pid_file) {
         stop($nginx_pid,$exec_file);
         if (!file_exists($pid_file)) {
            start($nginx_pid,$exec_file);
         } else {
            echo "File $pid_file exists,please check.";
         }
   }

   function status($nginx_pid) {
      if ($nginx_pid) {
         if (@posix_kill($nginx_pid,0)) {
            echo "Nginx is running...\n";
         } else {
            echo "Nginx is not running but pid file is exists.\n";
         }
      } else {
         echo "Nginx is not running...\n";
         }
   }

   function logrot($nginx_pid) {
      if ($nginx_pid) {
         echo @posix_kill($nginx_pid,10) ? "Log rotate succesfully.\n" : "Log rotate failed.\n";
      } else {
         echo "Nginx is not running.\n";
      }
   }

   switch ($argv[1]) {
      case "start":
        start($nginx_pid,$exec_file);
        break;
      case "stop":
        stop($nginx_pid,$exec_file);
        break;
      case "reload":
        reload($nginx_pid,$exec_file);
        break;
      case "restart":
        restart($nginx_pid,$exec_file,$pid_file);
        break;
      case "status":
        status($nginx_pid);
        break;
      case "logrot":
        logrot($nginx_pid);
        break;
      default:
        echo "Arguement error.Usage $argv[0]: {start | stop | reload | restart | status | logrot}\n";
        break;
   }

?>
  评论这张
 
阅读(60)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017