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?