• 守护进程因echo挂掉的原因,以及重定向标准输入、标准输出和标准错误


    我自己的理解:

    守护进程必然是要脱离终端的,而echo需要有标准输出,如果守护进程关闭了标准输出,或者关闭了终端,却没有重定向标准输出,那么,此时,在进程里进行echo,就会找不到标准输出而挂掉。

    在php cli 的守护进程中,重定向标准输入,标准输出和标准错误。

    1 fclose(STDIN);
    2 fclose(STDOUT);
    3 fclose(STDERR);
    4 
    5 global $STDIN,$STDOUT, $STDERR;
    6 $STDIN   = fopen("/dev/null","r");
    7 $STDOUT  = fopen("/var/log/stdout.log","wb");
    8 $STDERR  = fopen("/var/log/stderr.log","wb");

    在类似Unix的系统中,如果关闭了标准输出,标准错误输出文件描述符,那么重新打开的前三个文件描述符(相同顺序)将成为新的标准输入、输出、错误的描述符。

    其中,变量设置成全局变量,避免在其它地方被释放掉。

    来源:https://stackoverflow.com/questions/6472102/redirecting-i-o-in-php

  • 相关阅读:
    java基础数据
    Java环境搭建
    Mysql数据库基础
    php环境搭建
    1117bootstrap组件
    1117bootstrap
    1115表单验证
    1114JS实例4
    1113JS实例3
    1111JS实例2
  • 原文地址:https://www.cnblogs.com/undefined-j/p/14597825.html
Copyright © 2020-2023  润新知