运行iostat,mpstat,vmstat以及可执行文件

时间:2014-01-23 15:05:18

标签: shell

!/ bin / sh的

echo "Running IOSTAT"
iostat 2
echo "Running MPSTAT"
mpstat -P ALL 2
echo "Running VMSTAT"
vmstat 2
echo "Running executable"
./a.out 2 1024
echo "Done"

我想测试正在运行的可执行文件的性能。我写了一个剧本。它只显示iostat而不是剩下的3.如何平行运行所有4个?

2 个答案:

答案 0 :(得分:1)

尝试放一个&符号&'在每个命令的末尾。这将在后台启动可执行文件。例如:

mpstat -P ALL 2 &

答案 1 :(得分:1)

您的问题的解决方案是在后台运行命令并将其IO重定向到文件以供日后查看。

shell将执行命令,直到该命令完成并返回提供退出代码,以便进一步执行命令。

您使用&在后​​台运行命令。

您可以使用>stdout.txt 2>stderr.txt

将stdout和stderr重定向到文件

最后,您需要使用作业控制来终止正在运行的iostat,mpstat和vmstat。可以使用%和数字访问每个衍生的后台进程。因此,您可以使用kill %1

终止第一个后台作业

例如:

#!/bin/sh
echo "Running IOSTAT"
iostat 2 >iostat-stdout.txt 2>iostat-stderr.txt &
echo "Running MPSTAT"
mpstat -P ALL 2 >mpstat-stdout.txt 2>mpstat-stderr.txt &
echo "Running VMSTAT"
vmstat 2 >vmstat-stdout.txt 2>vmstat-stderr.txt &
echo "Running executable"
./a.out 2 1024
echo "Done"
kill %1
kill %2
kill %3

希望有所帮助。