2017-10-30 7 views
0

フォルダのコレクション内のインスタンスごとにクライアントとサーバーを実行しようとしています。私は、このコマンドを試してみました:Linux:Concurrent xtermの検索と実行

$ find ./ -name "Makefile" -execdir xterm -title "Server" -e "timeout -s sigint 8s ./server > serverLog.txt" \; -execdir xterm -title "Client" -e "timeout -s sigint 5s ./client > client1Log.txt" \;

をしかし、これは8秒間xtermウィンドウでサーバーを実行して、そのウィンドウを閉じて、5秒間xtermウィンドウでクライアントを実行しました。私はクライアントとサーバーが同時に見つかった各Makefileに対して実行する必要があります。

答えて

0

2つのコマンドを同時に実行するには、アンバーと&を使用する必要があります。最初の実行をバックグラウンドに送信し、次のコマンドを実行します。だから、

cmd1 & cmd2 &またはcmd1 & cmd2のようなものをexecする必要があります。

次に、1つのコマンドを受け入れる-execdirの中で、アンバースをエスケープする必要があります。

find [params] -execdir sh -c 'xterm -e "sleep 8" & xterm -e "sleep 5"' \;

:これを行う1つの方法は、

find [params] -execdir sh -c 'cmd1 & cmd2' \;

例です

関連する問題