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的守护进程。

  • 相关阅读:
    POJ 2253 Frogger
    C++map函数的用法
    蓝桥杯 幂方分解
    蓝桥杯 危险系数
    POJ 2234 Matches Game
    POJ 1852 Ants
    POJ 1144 Network
    POJ1419 Graph Coloring
    poj 2573 Bridge(有A、B、C、D四个人,要在夜里过一座桥……)
    小知识(输出源文件的标题和目前执行行的行数)
  • 原文地址:https://www.cnblogs.com/lxz88/p/6264604.html
Copyright © 2011-2022 走看看