2013-05-14 63 views
0

我有一個C套接字應用程序,其中不同的可執行文件必須同時運行,最好在不同的終端中運行。我該怎麼做? 例如,有四個exes,./one,./two,./three,./four。一次運行多個可執行文件

我希望它們可以在不同的linux終端上運行,沒有絲毫的時間差異。我該怎麼做?

+1

即使您準備在同一時間啓動所有程序,由於操作系統調度程序會在不同的內核和不同時間間隔的不同時間運行它們,因此它們*遲早會執行不同步操作;由於內存緩存等原因,它們甚至會以不同的速度運行。你不是在說爲什麼這些需要「沒有絲毫時差」而運行,但這是你實際需要解決的問題。 [你在這裏試圖解決的問題是什麼?](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – Celada 2013-05-14 12:20:36

+0

在三個不同的終端上運行或者你想直接輸出到三個不同的終端 – 2013-05-14 12:21:00

回答

1

總是會有至少一絲「時差」。 只要你的exe文件同意在一段時間內繼續進行操作,並在此之前進行睡眠,然後再做任何他們需要做的事情。

0

您將永遠不會同時運行多個進程。如果您只需幾乎同時啓動它們以進行測試,那麼最簡單的方法就是啓動終端仿真器來運行您的每個可執行文件。如果您已經安裝xorg,那麼你就可以打開xterm和運行有這樣的事情:

xterm -e "./app1; /bin/bash" & xterm -e "app2; /bin/bash" & ... 

在/斌/ bash中被調用,以防止關閉新xterm年代後您的申請將被完成。

我不是bash專家,所以這在我的機器上工作,我不能確定這個字符串可以與其他終端仿真器的舊版本或更新版本bashsh pr一起使用。但你總是可以寫類似的東西。

0

同時運行,你可以做這樣的事情:

 "declare -a cmd=(./first ./second ./third); for i in ${cmd[@]}; do exec $i wait & done" 

這可以幫助您自動完成任務。將你的命令放在數組上,執行它們。它會在後臺運行所有進程,並開始嘗試同時運行它們。

相關問題