php 运行服务,php自动运行 win32service功能
Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序 。 这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算 机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务
简单的说就是可以长时间、自动运行在Windows上的PHP程序。 问:这对我来说重要吗?
有什么用?
哈哈哈!有了这个,我们就可以做更多的事了。如:定期执行一个PHP任务、自动更新数据
....等等。
如何实现?
必须有一台 Windows服务器 或者Windows PC机
必须安装得有PHP运行环境
必须在PHP 的安装目录的\ext\下有这个 php_win32service.dll文件
必须有php.ini文件里面开启 extension=php_win32service.dll 这个选项
如果你运行不起来(请看一哈上面的说明哦)最重要代码来了,如下
Java代码 <?php
/**
* 利用PHP安装windows自动运行的服务
* $Id: WinService.class.php
* $winService = new WinService();
* $winService->install();
*/
classWinService
{
//服务名称
var $name = 'PHP Service';
//定义服务名称
var $info_name = "Exsample PHP Service";
//定义php.exe存放路径
var $path = "C:\\wamp\\php\\php.exe";
//定义所要执行的程序
var $params = "D:\\localhost\\Service\\win32_service.php";
//定义程序分隔执行时间,单位:秒
var $sleep = 5;
privatefunction __construct($name ='', $infoName ='', $param ='')
{
$this->name = $name;
$this->info_name = $infoName;
$this->params = $param;
}
publicfunction install()
{
/* 注册服务 */
$x = win32_create_service(array(
'service'=> $this->name,
'display'=> $this->info_name,
'path'=> $this->path,
'params'=> $this->params,
));
/* 启动服务 */
win32_start_service($this->name);
if($x !==true) {
die ('服务创建失败!');
} else{
die ('服务创建成功!');
}
}
publicfunction uninstall()
{
/* 移除服务 */
$removeService = win32_delete_service($this->name);
switch($removeService) {
case1060:
die ('服务不存在!');
break;
case1072:
die ('服务不能被正常移除! ');
break;
case0:
die ('服务已被成功移除!');
break;
default:
die ();
break;
}
}
publicfunction restart()
{
/* 重启服务 */
$svcStatus = win32_query_service_status($this->name);
if($svcStatus ==1060) {
echo "服务[". $this->name ."]未被安装,请先安装";
} else{
if($svcStatus['CurrentState'] ==1) {
$s = win32_start_service($this->name);
if($s !=0) {
echo "服务无法被启动,请重试! ";
} else{
echo "服务已启动! ";
}
} else{
$s = win32_stop_service($this->name);
if($s !=0) {
echo " 服务正在执行,请重试! ";
} else{
$s = win32_start_service($this->name);
if($s !=0) {
echo "服务无法被启动,请重试! ";
} else{
echo "服务已启动! ";
}
}
}
}
}
publicfunction start()
{
$s = win32_start_service($this->name);
if($s !=0) {
echo " 服务正在运行中! ";
} else{
echo " 服务已启动! ";
}
}
publicfunction stop()
{
$s = win32_stop_service($this->name);
if($s !=0) {
echo " 服务未启动! ";
} else{
echo " 服务已停止! ";
}
}
}
?>
win32_service.php
Java代码 <?php
//检测服务是否存在
if(!win32_start_service_ctrl_dispatcher("PHP Service")) {
die("没有发现正在运行的 [ "PHP Service" ] 服务");
}
win32_set_service_status(WIN32_SERVICE_START_PENDING);
win32_set_service_status(WIN32_SERVICE_RUNNING);
//如果运行中
while(WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
//写入文件
for($i =1; $i <=1; $i++) {
$b_file_path = "D:\\localhost\\test.txt";
$f = fopen($b_file_path, 'a+');
$msg = 'Dernier backup correctement:'. date('y/m/d h:i:s');
fwrite($f, $msg . "\r\n");
fclose($f);
sleep(1);
}
}
?>
php 运行服务,php自动运行 win32service功能相关推荐
- win10未开启没有运行无线服务器,win10系统提示共享无线自动配置服务没有自动运行的解决办法...
win10系统提示共享无线自动配置服务没有自动运行的解决办法? win10系统有很多人都喜欢使用,我们操作的过程中常常会碰到win10系统提示共享无线自动配置服务没有自动运行的问题.如果遇到win10 ...
- centos设置mysql为系统服务_CentOS系统如何设置Apache和MYSQL服务开机自动运行
centos安装好apache,mysql等服务器程序后,并没有设置成开机自动启动的,为避免重启后还要手动开启web等服务器,还是做下设置好,其实设置很简单,用chkconfig命令就行了. 例如要开 ...
- outlook邮箱显示一直启动中_win10outlook邮箱怎么设置开机自动运行 - 卡饭网
windows xp系统下如何设置开机自动运行程 windows xp系统下如何设置开机自动运行程 设置开机自动运行的步骤方法如下: 点击桌面左下角开始菜单,运行设置中的控制面板. 在打开的控制面板中 ...
- 掀开USB存储设备自动运行的面纱(精简版)
前前言2:为什么有精简版? 考虑原文(http://blog.sina.com.cn/u/56b798f8010007ht)太长而且比较罗嗦,部分新手会失去耐心看完,因此特地修改原文推出精简版.精简版 ...
- Excel宏的自动运行设置
如何设置宏的自动运行呢? 这里提供两种方式 在Excel打开的时候自动调用宏执行 通过脚本调用Excel中宏 本篇以 Excel宏的录制和解密 介绍的宏进行说明和演示. 宏自动运行的场景 自动运行宏的 ...
- 利用PHP安装windows自动运行的服务,PHP程序可以实现长时间、自动运行、定时更新功能,直接可以用在项目中的类源代码...
为什么80%的码农都做不了架构师?>>> 什么 windows服务 ? Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运 ...
- 禁止windows系统的自动运行功能
禁用Windows 系统的自动播放功能的方法:在运行中输入 gpedit.msc 后回车,打开组策略编辑器,依次点击:计算机配置->管理模板->系统->关闭自动播放->已启用- ...
- 在Ubuntu中自动运行KMS服务
在Ubuntu中自动运行KMS服务 安装最新的vlmcsd releases版本 使用wget下载: wget https://github.com/Wind4/vlmcsd/releases/dow ...
- FANUC机器人通过PNS功能实现自动运行
一.通过PNS功能实现自动运转 (1)信号控制 程序号码选择(PNS)功能,根据程序号码选择信号(PNS1~8输入.PNSTROBE输入)选择程序.程序处在暂停中或执行中的情况下忽略该信号. 自动运转 ...
- windows下ipv6 ddns 动态域名自动注册批处理 dynv6(服务方式,开机自动运行无需登录)
现在IPV6加速推进,几乎限量的地址资源,但是ipv6地址比V4难记忆多了nnds(动态域名)就显得很有必要. 网文 免费好用的IPv6之DDNS服务-Openwrt上dynv6的使用介绍 该网文详细 ...
最新文章
- linux隐藏文件的方法,Linux下隐藏文件的操作方法
- java定义一个盒子类box_定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height(...
- Delphi中的时间操作技术(1)
- 利用Aspose.Word控件实现Word文档的操作
- New Distinct Substrings(后缀数组)
- Qt图形界面编程入门(基本窗口及控件)
- 易语言 钩子 (钩子HOOK与APIHOOK是不一样的)
- prototype中的$H函数的用法
- java基础学习_GUI_如何让Netbeans的东西Eclipse能访问、GUI(图形用户接口)_day25总结...
- soapui 免费版 实现 datasource+ dataLoop
- 验证码短信是如何实现的?怎么用短信平台发送验证码短信?
- cnn kaggle仙人掌_我如何开发可识别情绪并闯入Kaggle前10名的CNN
- 【数据结构与算法】单链表的插入和删除
- 赵小楼《天道》《遥远的救世主》深度解析(118)女人的客观就那么难么?不难。难的是不想客观的人。
- 数据结构 - 环形队列
- FE_CSS 页面布局之定位
- Ubuntu18.04下Qt安装
- 金星遇老乡“泪汪汪” 郭富城不顾脚伤示范舞蹈
- 发动机、发电机、电动机、电机、马达傻傻分不清?一张图恍然大悟!
- 渣基础:比照Hawstein学Cracking the coding interview(4)
热门文章
- Active Directory证书服务
- WampServer 给电脑搭建apache服务器和php环境
- 微软职位内部推荐-Senior Engineering Lead
- 《Linux Shell脚本攻略》读书笔记第二章 命令之乐
- javascript与php数据交换之json
- struct and typedef
- 直连AIX服务器,对接AIX链路问题
- C# 操作json 序列化 反序列化
- php练手的项目,learnphp.beginmaker.com
- Caused by: java.lang.UnsatisfiedLinkError: libjawt.so: 无法打开共享对象文件: 没有那个文件或目录