2016-10-03 9 views
0

私の最終目標は、同時に2つのコマンドを開始することです(または、少なくとも数百msの差分を取ることです)。私はLinuxで&について読んでいます。例の場合:2つのLinuxシェルコマンドを同時に実行しますか?

<linux_shell_cmd_1> & <linux_shell_cmd_2>

は、これが私の目標を達成するだろうか?ありがとう。

+0

これを実現します。ただし、cmd1はバックグラウンドで実行され、cmd2はフォアグラウンドで実行されます – chenchuk

+1

2番目のコマンドは、最初のコマンドが開始された後、できるだけ早く* *起動されます。しかし、OSスケジューラにはどれくらいの時間がかかります。スクリプトが再開されてから2番目のジョブを開始するまで、任意の時間(他のジョブのCPU時間を許可するために)中断されることがあります。 – chepner

答えて

2

あなたの目標が数百ms以内にあることを考えれば、これは適切な量の負荷の下で典型的な現代的なハードウェアで必要に応じて機能するはずです。

cmd1 & cmd2  # start cmd1 in background and cmd2 in foreground 

...(それが終了するのを待たずに)バックグラウンドでcmd1を開始し、その後、フォアグラウンドでcmd2を開始します。第二の起動処理の前に非常にわずかに開始されたいずれの場合も

cmd1 & cmd2 & # start both cmd1 and cmd2 in background 

最初を開始するプロセスを、しかし、保証はいずれかへとありません。

また、検討するかもしれません(cmd1cmd2よりも呼び出すのに時間がかかる場合は、後者が実際に最初に起動するかもしれません)。

関連する問題