ホームページ > ウェブフロントエンド > jsチュートリアル > NodeJSの子プロセス(child_process)_jsonを使ってシステムコマンドを呼び出す方法を共有する

NodeJSの子プロセス(child_process)_jsonを使ってシステムコマンドを呼び出す方法を共有する

WBOY
リリース: 2016-05-16 17:32:43
オリジナル
1418 人が閲覧しました

NodeJS サブプロセスの概要 NodeJS サブプロセスは、システムと対話するための重要なインターフェイスを提供します。その主な API は、標準入力、標準出力、および標準エラー出力のインターフェイスです。

NodeJS サブプロセスの概要

NodeJS サブプロセスは、システムと対話するための重要なインターフェイスを提供します。

標準入力、標準出力。および標準エラー出力インターフェイス
child.stdin 標準入力の取得
child.stdout 標準出力の取得
child.stderr 標準エラー出力の取得
子プロセスの PID の取得: child.pid
子プロセスを生成するための重要なメソッドを提供します: child_process.spawn(cmd, args=[], [options])
システム コマンドを直接実行するための重要なメソッドを提供します: child_process.exec(cmd, [options], callback)
プロセスを強制終了するために提供されたメソッド: child.kill(signal='SIGTERM')

例 1: 子プロセスを使用してシステム メモリ使用量を取得する

以下を保存しますfree.js としてコード:

コードをコピー コードは次のとおりです:

var spawn = require( 'child_process').spawn,
free = spawn('free', ['-m']);

// 標準出力をキャプチャしてコンソールに出力します
free.stdout .on('data', function (data) {
console.log('標準出力: ' data);
});

// 標準エラー出力をキャプチャしてコンソールに出力します
free.stderr.on('data', function (data) {
コンソール.log('標準エラー出力: ' data);
});

//子プロセスのシャットダウンイベントを登録します
free.on('exit', function (code, signal) {
console.log('child)プロセスが終了しました。コード: ' code);


コードの実行後の結果:

$ node free.js
Stdout :
キャッシュされた使用済みの空き共有バッファの合計
Mem: 3949 1974 1974 0 135 959
-/ バッファ/キャッシュ: 879 3070
Swap: 3905 0 3905

子プロセスはexited 、コード: 0
上記の出力は、コマンド ラインで free -m コマンドを実行するのと同じです。

この簡単な例を通じて、子プロセスの使用法をすでに理解しました。exec の使用法を示す別の例を次に示します。


例 2: 子プロセスを使用してシステムのログイン時間をカウントする
次のコードを last.js として保存します


コードをコピーします コードは次のとおりです:
var exec = require('child_process').exec,
last = exec( 'last | wc -l');

last.stdout.on('data', function (data) {
console.log('Stdout:' data);
});

last.on('exit', function (code) {
console.log('子プロセスが閉じられました, code: ' code);
}); 🎜>
実行コード:
$node last.js
標準出力:203

子プロセスは閉じられました、コード:0
と同じですコマンドラインに直接入力します: last | wc - l の結果は同じです。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート