Node.jsで外部プロセスを起動するためには、child_process
モジュールを使用します。以下にそのサンプルコードを示します。
const { exec } = require('child_process');
exec('your command here', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
});
このコードは、your command here
に指定したコマンドを実行します。コマンドの実行結果はstdout
に、エラーメッセージはstderr
に格納されます。エラーが発生した場合、エラーオブジェクトはerror
に格納されます。
このコードを自分のニーズに合わせて調整してください。例えば、'your command here'
を実際に実行したいコマンド(例:'ls -l'
)に置き換えてみてください。ただし、このコードを実行する前に、実行したいコマンドがシステムに影響を与えないことを確認してください。安全なコマンドのみを実行してください。
ソース: Bing との会話 2023/11/28 (1) github.com. https://github.com/cciixx/nba-prediction-sys/tree/41d4ee1a9a010d29c9db149af3b6044add6a8dc8/.history%2Froutes%2Fpredict_20200323172137.js. (2) github.com. https://github.com/MathuraMG/PaperCraneLab/tree/3fb87ed1757678ffd3c1689d82768c00295c9052/env-12.10.0%2Fsrc%2Fnode-v12.10.0%2Fdoc%2Fapi%2Fchild_process.md.
Node.jsのchild_process
モジュールには、exec
の他にspawn
というメソッドもあります。spawn
は新しいシェルを起動せずに直接コマンドを実行します。以下にそのサンプルコードを示します。
const { spawn } = require('child_process');
const command = spawn('your command here', ['arg1', 'arg2', ...]);
command.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
command.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
command.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
このコードは、your command here
に指定したコマンドを実行し、'arg1', 'arg2', ...
といった引数を渡します。コマンドの実行結果はstdout
に、エラーメッセージはstderr
に格納されます。プロセスが終了したときの終了コードはclose
イベントのcode
パラメータに格納されます。
このコードを自分のニーズに合わせて調整してください。例えば、'your command here'
を実際に実行したいコマンド(例:'ls'
)に、['arg1', 'arg2', ...]
をそのコマンドの引数(例:['-l']
)に置き換えてみてください。ただし、このコードを実行する前に、実行したいコマンドがシステムに影響を与えないことを確認してください。安全なコマンドのみを実行してください。
ソース: Bing との会話 2023/11/28 (1) github.com. https://github.com/positive12/nodeRsync/tree/7d622175037f4ca9e54c70f1dfafaa75b8634e7f/rsync.js. (2) github.com. https://github.com/Legend-Wangyunfeng/ByteDance_YouthCamp/tree/d43762d499fedb9f313c685b28af4a23dd4de0fe/Day01%2Fcli%2Fbin%2Fscript%2Finit.js. (3) github.com. https://github.com/royalcala/vidalii-server/tree/8eb2fe7fb76319bba8d93015e139394b7ebbdf15/packages%2Fold_versions%2Fdb%2Fshell.js. (4) github.com. https://github.com/gauravsharmadev/github-webhooks/tree/a732c2ed2181e21a38da710b26021612a03da92a/scripts%2Fecosystem%2Fpm2%2Fupdate-pid.js.