2016-03-30 14 views
0

私はPhantomJSを使用してUnixサーバー上で実行されるスクリプトを開発します。 PhantomJSから、hostnameコマンドで返されたUnixシステムの名前を取得したいとします。PhantomJSからUNIXホスト名を取得

私はこの

var childProcess = require('child_process') 

childProcess.execFile("hostname", [""], null, function (err, stdout, stderr) { 
    console.log("execFileSTDOUT:", JSON.stringify(stdout)) 
    console.log("execFileSTDERR:", JSON.stringify(stderr)) 
    console.log("execFileERR:", JSON.stringify(err)) 
}) 

を行うしかし、何も表示されません。

+0

これは完全なスクリプトですか?私はあなたが早すぎると思われます。 –

答えて

1

を2番目と3番目のパラメータを失います。 PhantomJSスクリプトを終了する場合は、コールバックでこれを行う必要があります。さらに、""は有効なホスト名ではありません。あなたは空の引数リストを使用することができます。

var childProcess = require('child_process') 

childProcess.execFile("hostname", [], null, function (err, stdout, stderr) { 
    console.log("execFileSTDOUT:", JSON.stringify(stdout)) 
    console.log("execFileSTDERR:", JSON.stringify(stderr)) 
    console.log("execFileERR:", JSON.stringify(err)) 
    phantom.exit(); 
}) 

出力:

execFileSTDOUT: "myhostname\n" 
execFileSTDERR: "" 
execFileERR: null 

PhantomJS 1.9.7および2.0.1でテストされています。

+0

PhantomJS 2.0.0でOKです。 'execFile'を同期して実行することは可能でしょうか? – LeMoussel

0

execFileが非同期であることを覚えておいてください(それは大丈夫ですので、あなたが何を送信していない)

var childProcess = require('child_process') 

childProcess.execFile("hostname", [], {}, function (err, stdout, stderr) { 
    console.log("execFileSTDOUT:", JSON.stringify(stdout)) 
    console.log("execFileSTDERR:", JSON.stringify(stderr)) 
    console.log("execFileERR:", JSON.stringify(err)) 
}) 

// execFileSTDOUT: "YourPuterName\n" 
+0

私はこのエラーがあります:エラー:_start()の呼び出しで、互換性のない型の引数があります。候補者は です_start(QString、QStringList) :_start内の :95 execfile内の95 – LeMoussel

+0

実行しているノードのバージョンはどれですか? – Wainage

+0

Ubuntu 15.04のPhantomJS V 2.0.0 - ARMv7プロセッサーrev 2(v7l) – LeMoussel

関連する問題