it-swarm-ja.com

1つの端末で2つの進行中のプログラムを実行できますか?

私は次のnpmタスクでnodejsアプリを開発しています:

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "watch": "webpack --progress --watch",
  "develop": "npm start && npm run watch",
  "build": "webpack --progress",
  "start": "node server.js"
}

そして、1つの端末の1つのコマンド内で実行される2つの進行中のプロセスを実行したいと思います。それはnpm run developです(node server.jswebpack --progress --watchを実行します。

私の質問は、私はそれを行うことができますか?可能であれば、これら2つのプロセスのログはどのように表示されますか?

2
Oskar Szura

はい、できます。 prog1とprog2という2つのプログラムがある場合は、次のことを試してください。

 #!/bin/bash
 prog1 2> .errorprog1.log & prog2 2> .errorprog2.log &

これにより、エラーが別のログにリダイレクトされます。

これを試すこともできます:

prog1 &
prog2 &

私はこれを見つけました スレッド これにはあなたにとって有益な役立つヒントがたくさん含まれています。それを通過してください。

お役に立てれば。

ありがとうございました。

3
Animesh Patra

&を使用してコマンドをフォークするだけで、バックグラウンドでコマンドを実行できます。そう

$ node server.js & $ webpack --progress --watch &

2つのプロセスの出力はターミナルで混合されます。これは混乱を招く可能性があるため、ファイルに記録できます。

$ node server.js | tee log1 & $ webpack --progress --watch | tee log2 &

フォークの詳細については、 this を確認してください。

2
Mohamed Moanis