php实现简单的守护进程创建、开启与关闭操作
时间:2022-07-27
本文章向大家介绍php实现简单的守护进程创建、开启与关闭操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例讲述了php实现简单的守护进程创建、开启与关闭操作。分享给大家供大家参考,具体如下:
前提要安装有pcntl扩展,可通过php -m
查看是否安装
<?php
class Daemon {
private $pidfile;
function __construct() {
$this- pidfile = dirname(__FILE__).'/daemontest.pid';
}
private function startDeamon() {
if (file_exists($this- pidfile)) {
echo "The file $this- pidfile exists.n";
exit();
}
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
echo 'start ok';
exit($pid);
} else {
// we are the child
file_put_contents($this- pidfile, getmypid());
return getmypid();
}
}
private function start(){
$pid = $this- startDeamon();
while (true) {
file_put_contents(dirname(__FILE__).'/test.txt', date('Y-m-d H:i:s'), FILE_APPEND);
sleep(2);
}
}
private function stop(){
if (file_exists($this- pidfile)) {
$pid = file_get_contents($this- pidfile);
posix_kill($pid, 9);
unlink($this- pidfile);
}
}
public function run($argv) {
if($argv[1] == 'start') {
$this- start();
}else if($argv[1] == 'stop') {
$this- stop();
}else{
echo 'param error';
}
}
}
$deamon = new Daemon();
$deamon- run($argv);
启动
php deamon.php start
关闭
php deamon.php stop
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP进程与线程操作技巧总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
- Golang学习--GroupCache的使用
- 基于 Webpack & Vue & Vue-Router 的 SPA 初体验
- GO语言高并发学习心得体会例
- Go 语言实现的网络连接池:Pool
- go语言操作redis连接池的方法
- WebVR如此近 - three.js的WebVR示例程序解析
- 【Dev Club分享】基于RxJava的一种MVP实现
- Android 动态链接库加载原理及 HotFix 方案介绍
- 如果裸写一个goroutine pool
- 【Dev Club 分享】微信 iOS SQLite 源码优化实践
- 移动客户端中高效使用 SQLite
- 【Dev Club 分享】微信热补丁 Tinker 的实践演进之路
- Android 进程保活招式大全
- 【Dev Club 分享】H5 视频直播那些事
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Ubuntu 18.04更换apt-get源的方法
- 浅谈Linux环境变量文件介绍
- linux创建线程之pthread_create的具体使用
- Ubuntu20.04安装搜狗输入法的详细步骤
- linux系统安装msf的过程详解
- Linux删除系统自带版本Python过程详解
- Linux时间子系统之时间的表示示例详解
- 如何在Linux中修改tomcat端口号
- centos7修改系统语言为简体中文的实现
- Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能
- linux实现猜数字小游戏源码
- linux编译kernel和svn版本冲突的解决办法
- 在 Ubuntu Linux 上安装 Oracle Java 14的方法
- 在 Linux 系统中手动滚动日志的方法
- Linux进程管理工具supervisor安装配置教程