PHP exec分支进程,使其崩溃返回代码仍为0

时间:2014-08-27 21:46:48

标签: php linux

$cmd = "php thisWillCrash.php";
exec($cmd, $op, $return_code);

然后我检查$ return_code及其0表示成功,为什么?

我已经尝试了几种变体" thisWillCrash.php"包括

trigger_error("Fatal Error", E_USER_ERROR);
include("dasdasdsakdassadsad");

和内存循环将耗尽内存,同样的结果返回代码始终为0.任何想法?

2 个答案:

答案 0 :(得分:1)

我认为您需要让脚本本身以0

以外的状态显式退出

你可以尝试一下这样的事情:

<?php

try {
    throw new Exception;
} catch (Exception $exc) {
    exit(1);
}

答案 1 :(得分:0)

除了明确调用exit之外,似乎无法从有效的php脚本强制执行非零退出状态。 php&#39; s main()仅在以下内容中返回非零值:

  • 命令行无效(无效参数,没有此类文件等)
  • 内部启动错误
  • 特定模式错误(例如lint模式)
  • 解析错误
  • php脚本名为exit

因此获得非零的最简单方法就是php nosuchfile.php