複数の独立したプロセスの開始

複数の独立したプロセスの開始

forループを使用して同時に複数のプロセスを開始しようとしています。それぞれのコンソールウィンドウで作成したいと思います。これまで私は以下を持っています:

for i in {1..5}; do konsole -e "./program arg1 arg2"; done 

しかし、これは1つずつ実行されるので、同時に実行したいと思います。 「&」を試してみましたが、ループでうまく機能させることはできません。

答え1

&コマンドの最後に追加してバックグラウンドジョブを開始します。konsole次のように書くと、ループはバックグラウンドで始まります。

for i in {1..5}; do
    konsole -e "./program arg1 arg2" &
done

または一行で、

for i in {1..5}; do konsole -e "./program arg1 arg2" & done

これは(および改行文字や他のいくつか)などの&コマンドターミネーターなので、;変える;もともとそこにあったもの。

開始されたバックグラウンド操作が完了するまでスクリプトが待機するようにするには、wait最後に以下を追加します。

for i in {1..5}; do konsole -e "./program arg1 arg2" & done; wait

関連情報