强制PHP命令行脚本单进程运行的方法
发布:smiling 来源: PHP粉丝网 添加日期:2020-11-15 19:57:50 浏览: 评论:0
本文介绍了一个强制PHP在单进程中执行的函数,多用在php命令行中和一些特殊需求的地方,需要的朋友可以参考下,代码如下:
- /**
- * 保证单进程
- *
- * @param string $processName 进程名
- * @param string $pidFile 进程文件路径
- * @return boolean 是否继续执行当前进程
- */
- function singleProcess($processName, $pidFile)
- {
- if (file_exists($pidFile) && $fp = @fopen($pidFile,"rb"))
- {
- flock($fp, LOCK_SH);
- $last_pid = fread($fp, filesize($pidFile));
- fclose($fp);
- if (!emptyempty($last_pid))
- {
- $command = exec("/bin/ps -p $last_pid -o command=");
- if ($command == $processName)
- {
- return false;
- }
- }
- }
- $cur_pid = posix_getpid();
- if ($fp = @fopen($pidFile, "wb"))
- {
- fputs($fp, $cur_pid);
- ftruncate($fp, strlen($cur_pid));
- fclose($fp);
- return true;
- }
- else
- {
- return false;
- }
- }
- /**
- * 获取当前进程对应的Command
- *
- * @return string 命令及其参数
- */
- function getCurrentCommand()
- {
- $pid = posix_getpid();
- $command = exec("/bin/ps -p $pid -o command=");
- return $command;
- }
使用方法:
- if (singleProcess(getCurrentCommand(), 'path/to/script.pid'))
- {
- // code goes here
- }
- else
- {
- exit("Sorry, this script file has already been running ...\n");
- }
Tags: PHP命令行 PHP单进程
相关文章
- ·php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法(2021-05-27)
- ·PHP的命令行命令使用指南(2021-06-16)
- ·php命令行(cli)模式下报require 加载路径错误的解决方法(2021-06-27)
- ·基于命令行执行带参数的php脚本并取得参数的方法(2021-07-07)
- ·php命令行写shell实例详解(2021-10-19)
- ·php根据命令行参数生成配置文件详解(2021-11-12)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)