Exec Код выхода Значение для 11

Я использую следующий код на веб-сервере Linux

$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>';

Я прошел по этой ссылке, но этот код там не указан. Любая идея, что означает этот код выхода?

2 ответа

Решение

Код 11 - это "ошибка сегментации": ошибка сегментации (также segfault) вызывается программой, когда она пытается выделить данные в той части памяти, которая не назначена программе. Это указывает на ошибку программы и обычно (если не всегда) приводит к сбою программы. В вашем случае, segfault, вероятно, вызвано phantomjs, что указывает на старую или бета-версию.

Это то, что я узнал.

  • Ваш фантом называет какой-то дочерний процесс. (Я предполагаю, что вы выполняете это на узле).
  • Теперь, если table1.js внезапно завершится, код возврата будет двоичным 00001000 и основной процесс (узел согласно предположению) также завершится с тем же двоичным кодом ошибки.
  • Теперь, согласно соотношению состояния выхода, оба двоичных файла будут преобразованы в сигналы нормального знака, что делает оба 1 а также 1,

Отсюда ваш код ошибки 11.

Источник: Существуют ли стандартные коды состояния выхода в Linux?

Другие вопросы по тегам