2015-10-04 50 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