Node.jsからLinuxコマンドを実行
この記事は最終更新日から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からコマンドを別プロセスとして実行を参考にしてください:

以上です。


芽萌丸プログラミング部
芽萌丸プログラミング部@programming
プログラミング関連アカウント。Web標準技術を中心に書いていきます。フロントエンドからサーバサイドまで JavaScript だけで済ませたい人たちの集いです。記事は主に @TanakaSoftwareLab が担当。