如何获得 nohup 命令的正确结束时间?

如何获得 nohup 命令的正确结束时间?
#!/bin/sh

set -x

echo "Starting Time at "`sshpass -p xxx ssh -o StrictHostKeyChecking=no UN@IP 'date'`
nohup ab -n 20000 -c 70 https://xxx.xxxxxx.com/xxx/xxxx/new.jsp &

echo "Ending Time at "`sshpass -p xxx ssh -o StrictHostKeyChecking=no UN@IP 'date'`

#!/bin/sh

set -x

echo "Starting Time at "`sshpass -p xxx ssh -o StrictHostKeyChecking=no UN@IP 'date'`
nohup ab -n 20000 -c 70 https://xxx.xxxxxx.com/xxx/xxxx/new.jsp &

echo "Ending Time at "`sshpass -p xxx ssh -o StrictHostKeyChecking=no UN@IP 'date'`

上面的脚本发送 20000 个请求,https://xxx.xxxxxx.com/xxx/xxxx/new.jsp并发数为 70。我希望它打印命令的开始和结束nohup。但是,当我运行此命令时,在启动脚本后,Starting TimeEnding Time都会同时打印。

如何获得正确的结束时间?

答案1

背景还是前景?

如果您显示的代码是完整代码,我不明白您为什么运行,nohup .. &只需删除它们,当您输入第二个回显时,ab程序将结束。

如果您的代码是片段,只需wait在第二个回显之前使用即可。例如

echo "Starting Time at "`sshpass -p xxx ssh -o StrictHostKeyChecking=no UN@IP 'date'`
nohup ab -n 20000 -c 70 https://xxx.xxxxxx.com/xxx/xxxx/new.jsp &
## some shell
wait
echo "Ending Time at "`sshpass -p xxx ssh -o StrictHostKeyChecking=no UN@IP 'date'`
  • 请参阅手册中的等待bash

相关内容