繁体中文
设为首页
加入收藏
当前位置:网络编程首页 >> php >> PHP创建windows服务并自动运行

PHP创建windows服务并自动运行

2008-04-23 11:37:52  作者:  来源:互联网  浏览次数:11  文字大小:【】【】【
简介:需利用PHP在windows中建创自动运行的服务, 特别注意:PHP.ini文件中路径要使用绝对路径 config.php <?PHP /* * 功能:利用PHP安装windows自动运行的服务 * 作者:LiangJQ ...

需利用PHP在windows中建创自动运行的服务,

特别注意:PHP.ini文件中路径要使用绝对路径

config.php

 

  1. <?PHP
  2.  /*
  3. * 功能:利用PHP安装windows自动运行的服务
  4. * 作者:LiangJQ
  5. * 时间:2008年3月7日
  6. */
  7.  
  8. //定义服务名称
  9.  define("_SERVICENAME", "PHP Service");
  10.  
  11.  
  12.  //定义服务显示名称
  13.  define("_SERVICEINFONAME", "Exsample PHP Service");
  14.  
  15.  
  16.  //定义php.exe存放路径
  17.  define("_PATH", "C:\wamp\php\php.exe");
  18.  
  19.  
  20.  //定义所要执行的程序名称
  21.  define("_PARAMS", "D:\\localhost\\Service\\win32_service.php");
  22.  
  23.  
  24.  //定义程序分隔执行时间,单位:秒
  25.  define("_SLEEP", 5);
  26.  
  27. ?>

 


index.php

  1. <?php
  2.  /*
  3. *        功能:利用PHP安装windows自动运行的服务
  4. *        作者:LiangJQ
  5. *        时间:2008年3月7日
  6. */
  7.  
  8. require_once "Config.php";
  9.  
  10. //查看服务状态
  11.  $svcStatus=win32_query_service_status( _SERVICENAME );
  12.  if($svcStatus == 1060){
  13.          echo "服务 [ "._SERVICENAME." ] 未被安装";
  14.  }else{
  15.          echo "服务 [ "._SERVICENAME." ] 已经安装";
  16.        
  17.          echo " 服务状态:";
  18.          switch($svcStatus['CurrentState']){
  19.                  case 1: echo "未启动"; break;
  20.                  case 4: echo "已启动"; break;
  21.                  default: break;
  22.          }
  23.        
  24.  }
  25.  
  26. echo '<ul>
  27.    <li><a href="install_service.php">安装服务</a></li>
  28.    <li><a href="uninstall_service.php">移除服务</a></li>
  29.    <li><a href="start_service.php">开始服务</a></li>
  30.    <li><a href="stop_service.php">停止服务</a></li>
  31.    <li><a href="restart_service.php">重启服务</a></li>
  32. </ul>
  33. <p>';
  34.  ?>

 

install_service.php

  1. <?php
  2.  /*
  3. *        功能:利用PHP安装windows自动运行的服务
  4. *        作者:LiangJQ
  5. *        时间:2008年3月7日
  6. */
  7.  
  8. require_once "Config.php";
  9.  
  10. //注册服务
  11.  $x = win32_create_service(array(
  12.      'service' => _SERVICENAME,
  13.          'display' => _SERVICEINFONAME,
  14.      'path' => _PATH,
  15.      'params' => _PARAMS,
  16.          ));
  17.  
  18.  
  19.  //启动服务
  20.  win32_start_service( _SERVICENAME );
  21.  
  22.  
  23.  if($x !== true){
  24.          die('服务创建失败!');
  25.  }else{
  26.          die('服务创建成功!');
  27.  }
  28.  
  29. ?>

 


restart_service.php

  1. <?php
  2.  /*
  3. *        功能:利用PHP安装windows自动运行的服务
  4. *        简介:重启服务
  5. *        作者:LiangJQ
  6. *        时间:2008年3月7日
  7. */
  8.  
  9. require_once "Config.php";
  10.  
  11. //重启服务
  12.  $svcStatus=win32_query_service_status( _SERVICENAME );
  13.  if($svcStatus == 1060){
  14.  
  15.         echo "服务 [ "._SERVICENAME." ] 未被安装,请先安装";
  16.        
  17.  }else{
  18.  
  19.         if($svcStatus['CurrentState'] == 1){
  20.        
  21.                  $s=win32_start_service( _SERVICENAME );
  22.                
  23.                  if($s != 0){
  24.                          echo "服务无法被启动,请重试!";
  25.                  }else{
  26.                          echo "服务已启动!";
  27.                  }
  28.                
  29.          }else{
  30.        
  31.                  $s=win32_stop_service( _SERVICENAME );
  32.  
  33.                 if($s != 0){
  34.                          echo "服务正在执行,请重试!";
  35.                  }else{
  36.                
  37.                          $s=win32_start_service( _SERVICENAME );
  38.                
  39.                          if($s != 0){
  40.                                  echo "服务无法被启动,请重试!";
  41.                          }else{
  42.                                  echo "服务已启动!";
  43.                          }
  44.                        
  45.                  }
  46.                
  47.          }
  48.  
  49. }
  50.  
  51. ?>

 


start_service.php

  1. <?php
  2.  /*
  3. *        功能:利用PHP安装windows自动运行的服务
  4. *        简介:启动服务
  5. *        作者:LiangJQ
  6. *        时间:2008年3月7日
  7. */
  8.  
  9. require_once "Config.php";
  10.  
  11. //启动服务
  12.  $s=win32_start_service( _SERVICENAME );
  13.  
  14. if($s != 0){
  15.          //1056
  16.          echo "服务正在运行中!";
  17.  }else{
  18.          echo "服务已启动!";
  19.  }
  20.  ?>

 


stop_service.php

  1. <?php
  2.  /*
  3. *        功能:利用PHP安装windows自动运行的服务
  4. *        简介:停止服务
  5. *        作者:LiangJQ
  6. *        时间:2008年3月7日
  7. */
  8.  
  9. require_once "Config.php";
  10.  
  11. //停止服务
  12.  $s=win32_stop_service( _SERVICENAME );
  13.  
  14. if($s != 0){
  15.          //1062
  16.          echo "服务未启动!";
  17.  }else{
  18.          echo "服务已停止!";
  19.  }
  20.  ?>

 


uninstall_service.php

  1. <?php
  2.  /*
  3. *        功能:利用PHP安装windows自动运行的服务
  4. *        简介:移除服务
  5. *        作者:LiangJQ
  6. *        时间:2008年3月7日
  7. */
  8.  
  9. require_once "Config.php";
  10.  
  11. //移除服务
  12.  $removeService = win32_delete_service( _SERVICENAME );
  13.  
  14. switch($removeService)
  15.  {
  16.          case 1060: die('服务不存在!');break;
  17.          case 1072: die('服务不能被正常移除!');break;
  18.          case 0:die('服务已被成功移除!');break;
  19.          default:die();break;
  20.  }
  21.  
  22. ?>

 


win32_service.php

  1. <?php
  2.  /*
  3. *        功能:利用PHP安装windows自动运行的服务
  4. *        简介:自动执行程序
  5. *        作者:LiangJQ
  6. *        时间:2008年3月7日
  7. */
  8.  
  9. require_once "Config.php";
  10.  
  11. //检测服务是否存在
  12.  if (!win32_start_service_ctrl_dispatcher( _SERVICENAME )) {
  13.  die("没有发现正在运行的 [ "._SERVICENAME." ] 服务");
  14.  }
  15.  
  16.  
  17.  //如果运行中
  18.  while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
  19.  
  20.         //写入文件
  21.          for($i=1;$i<=1;$i++){
  22.                  $b_file_path="D:\\localhost\\test.txt";
  23.                  $f=fopen($b_file_path,'a+');
  24.                  $msg='Dernier backup  correctement:'.date('y/m/d h:i:s');
  25.                  fwrite($f,$msg."\r\n");
  26.                  fclose($f);
  27.                  sleep(1);
  28.          }
  29.  
  30. }
  31.  
  32.  
  33.  ?>

责任编辑:探索者


相关文章
 

最新文章

更多

· php教程:mysql的常用语句
· PHP教程:cookie和数组的...
· PHP创建windows服务并自...
· PHP技巧教程:setcookie...
· 可以在读者复制网页内容...
· 高亮显示php代码
· PHP加速器 eaccelerator...
· ffmpeg+mencoder环境搭建...
· ffmpeg的编译大全
· Ffmpeg使用语法

推荐文章

更多

· php教程:mysql的常用语句
· PHP教程:cookie和数组的...
· PHP创建windows服务并自...
· PHP技巧教程:setcookie...
· 可以在读者复制网页内容...
· 高亮显示php代码
· PHP加速器 eaccelerator...
· ffmpeg+mencoder环境搭建...
· ffmpeg的编译大全
· Ffmpeg使用语法

热点文章

更多