exec Exit Code Meaning for 11

2019-01-28 08:37发布

问题:

I'm using the following code on a linux web server

$error = exec('phantomjs table1.js', $op, $code);
echo $code; // prints 11 on screen

table1.js

var page = require('webpage').create();
var url = 'table1.php';
page.open(url, function (status) {
    page.render('ss/table1.png');
    phantom.exit();
});

table1.php

echo '<h1>This should be converted to an image</h1>';

I went through this link but that code isn't listed there. Any idea what this exit code stands for?

回答1:

Code 11 is a "segmentation fault": A segmentation fault (also segfault) is caused by a program when it tries to allocate data in a piece of memory that is not assigned to the program. It indicates a program error and usually (if not always) crashes the program. In your case, the segfault probably is caused by phantomjs, which indicates perhaps an old or beta version.



回答2:

This is what I found out.

  • Your phantomjs is calling some child process. (My assumption would be you are executing this on node).
  • Now, if table1.js exits abruptly, then return code will be binary 00001000 and the main process(node as per assumption) will also exit with the same binary error code.
  • Now as per exit status co-relation, both the binaries will be converted to normal sign signals which makes both to be 1 and 1.

Hence your error code of 11.

Source: Are there any standard exit status codes in Linux?