zoukankan      html  css  js  c++  java
  • PHP signal 信号

    最早写php时,发现在终端执行一个php文件,会一直等待程序执行完成以后,终端才能继续下面的操作,若不小心按了下Ctrl+C会导致php程序退出,闭避免这种情况发生,将会使用php的系统编程,即signal。

    一、实现主进程退出、子进程继续执行的php应用程序,创建php文件sig.php:

    $i=0;
    //fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,
    //不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。
    $pid = pcntl_fork();
    //父进程和子进程都会执行下面代码
    if ($pid == -1) {////错误处理:创建子进程失败时返回-1.
        die('could not fork');
    } else if ($pid) {//父进程会得到子进程号,所以这里是父进程执行的逻辑
        // we are the parent
        //pcntl_wait($status); //Protect against Zombie children
        exit($pid);
    } else {//子进程得到的$pid为0, 所以这里是子进程执行的逻辑。
    }
    while($i<10){
        pcntl_signal_dispatch();
        sleep(1);
        echo $i++;
    }

      在终端执行:php sig.php 就会发现主进程瞬间退出,但是子进程却仍然在不断的执行(打印数据)。

    pcntl*,可实现php的守护进程。

  • 相关阅读:
    使用bink播放视频
    Vertex Shader And Pixel Shader
    Points Versus Pixels in Cocos2D
    ogre_机器人在10个位置循环走动
    简单播放声音PlaySound
    Vertex Shader 入门代码
    加载地形的类
    Animation Cache in Cocos2diphone v2.0.0
    [转]Rad Video Tools使用手册
    CSound类源文件
  • 原文地址:https://www.cnblogs.com/lxz88/p/6264604.html
Copyright © 2011-2022 走看看