当前位置:  编程技术>php

强制PHP命令行脚本单进程运行的方法

    来源: 互联网  发布时间:2014-08-26

    本文导语:  代码如下: /**  * 保证单进程  *  * @param string $processName 进程名  * @param string $pidFile 进程文件路径  * @return boolean 是否继续执行当前进程  */ function singleProcess($processName, $pidFile) {  if (file_exists($pidFile) && $fp = @fopen($pidFile,"rb"))...

代码如下:

 /**
  * 保证单进程
  *
  * @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 (!empty($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");
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Web前端设计:Html强制不换行<nobr>标签用法代码示例
  • 请问如何修改网卡的速率,如强制100M,强制10M,怎么实现的,是不是要修改驱动?
  • Linux下glibc库文件锁:协同锁(advisory lock)和强制锁(mandatory lock)
  • css强制换行 css强制不换行的css方法
  • 标准c++四种强制类型转换方式介绍
  • 结构指针类型强制转换
  • 如何加强制性锁?
  • PHP 强制下载文件示例代码
  • 怎么强制删除一个安装程序啊
  • 请问qt如何强制关闭窗口
  • dhcp如何强制更新ip?
  • php实现文件强制下载代码
  • 深入C++四种强制类型转换的总结
  • 强制关机 现在进不了桌面
  • css white-space:nowrap属性用法(可以强制文字不换行输出)
  • MYSQL中常用的强制性操作(例如强制索引)
  • 函数指针的强制类型转换实现代码
  • JAVA有没有强制回收机制?
  • java中强制转换
  • 强制认证门户 Opengate
  • Linux C下socker编程,如何强制不分片?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3