この記事は最終更新日から1年以上が経過しています。
@programming
投稿日 2020/6/11
更新日 2020/6/11 ✏
Node.jsからLinuxコマンドを実行
Node.jsからLinuxコマンドなどの外部コマンドを実行する方法のメモです。
目次:
サンプルコード
以下のサンプルはLinuxコマンドの$ ls -l -t -h
を実行するサンプルです:
ls-command-sample.js
const { spawn } = require('child_process');
// $ ls -l -t -h を実行:
const child = spawn('ls', ['-l', '-t', '-h']);
// このコメントを外すと'data'ハンドラで toString('utf8') する必要が無くなります:
// child.stdout.setEncoding('utf8');
child.stdout.on('data', (data) => {
console.log('stdout data:', data.toString('utf8'));
});
child.stderr.on('data', (data) => {
console.error('stderr data:', data.toString('utf8'));
});
child.on('close', (code) => {
console.log("on close:", code);
});
上記コードを実行するとこのような結果になります:
$ node ls-command-sample.js
stdout data: 合計 8.0K
-rw-rw-r-- 1 hoge hoge 520 6月 11 08:05 app.js
-rw-rw-r-- 1 hoge hoge 217 6月 11 08:00 package.json
on close: 0
ひとこと
今回紹介したサンプルはメインプロセスに依存して実行されます。メインプロセスから切り離して実行したい場合は、Node.jsからコマンドを別プロセスとして実行を参考にしてください:
以上です。