3

Linux Webサーバーで次のコードを使用しています

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

このリンクをたどりましたが、そのコードはそこにリストされていません。この終了コードが何を表しているか分かりますか?

4

2 に答える 2

2

コード 11 は「セグメンテーション フォールト」です。セグメンテーション フォールト (セグメンテーション フォールト) は、プログラムに割り当てられていないメモリの一部にデータを割り当てようとしたときに、プログラムによって引き起こされます。これはプログラム エラーを示しており、通常は (常にではないにしても) プログラムがクラッシュします。あなたの場合、segfault はおそらく phantomjs によって引き起こされている可能性があり、これはおそらく古いバージョンまたはベータ バージョンを示しています。

于 2013-04-24T11:36:11.063 に答える
0

これが私が見つけたものです。

  • あなたのphantomjsはいくつかの子プロセスを呼び出しています。(私の仮定では、これをノードで実行しています)。
  • ここで、table1.js が突然終了した場合、リターン コードはバイナリ00001000になり、メイン プロセス (想定どおりのノード) も同じバイナリ エラー コードで終了します。
  • 終了ステータスの相互関係に従って、両方のバイナリが通常の符号信号に変換され、両方が と に1なり1ます。

したがって、エラーコードは 11 です。

出典: Linux に標準の終了ステータス コードはありますか?

于 2013-04-24T11:54:43.497 に答える