2015-10-04 49 views
0

我有兩個方案,我需要在一個具體的順序啓動:執行兩個程序同時

  1. ./server
  2. ./client

我想寫運行這兩個程序的shell腳本在for循環中(腳本域是對應用程序進行基準測試)。出於這個原因,我需要client呼叫阻塞和server呼叫異步,但我也需要在client已返回(因此server可以在下一次迭代中重新啓動)之後明確地終止server

實現此行爲的最簡單方法是什麼?

回答

4
server & 
PID=$! 
client 
kill $PID 
2

也許啓動服務器並存儲它的PID $!

#!/bin/sh 

./server & storepid="$!" 
./client 
kill "$storepid" 
+0

'if [「$ storeret」= 0]'可以簡寫爲'if $ storeret'。 –

+0

@JohnZwinck我對此表示懷疑! '如果$ storeret'將嘗試執行通過擴展變量'storeret'獲得的命令......並且我懷疑你的'PATH'中有一個名爲'0'的可執行文件。 –

+0

嗯,在您編輯之後,這與其他接受的答案基本相同。也許只是刪除這個? – tripleee