Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在命令行中运行三个程序,或在程序运行时记录CPU利用率的脚本_Linux_Bash_Perl_Scripting_Cpu Usage - Fatal编程技术网

Linux 在命令行中运行三个程序,或在程序运行时记录CPU利用率的脚本

Linux 在命令行中运行三个程序,或在程序运行时记录CPU利用率的脚本,linux,bash,perl,scripting,cpu-usage,Linux,Bash,Perl,Scripting,Cpu Usage,我尝试在命令行中运行3个程序,如下所示: program1; program2; program3 我希望program1在program2运行时运行。一旦program2自然终止,我希望program3显式终止program1 这样做的目的是,我可以在程序运行时记录CPU利用率,以便进行基准测试 以下是我想要的想法: mpstat 1 & > CPUutil.txt ; ./a.out | tee p.txt ; perl -e '//code to kill program1

我尝试在命令行中运行3个程序,如下所示:

program1; program2; program3
我希望program1在program2运行时运行。一旦program2自然终止,我希望program3显式终止program1

这样做的目的是,我可以在程序运行时记录CPU利用率,以便进行基准测试

以下是我想要的想法:

mpstat 1 & > CPUutil.txt ; ./a.out | tee p.txt ; perl -e '//code to kill program1'

如果您能想出一个完全可以在Perl脚本中使用system()/fork()而不是只使用命令行来完成的解决方案,那么同样好。

您想将
program1
放在后台使用
&

program1&; program2; kill $!

然后它将与
程序2
一起运行<代码>杀死$
$!
是最近后台进程的pid,即
程序1
)将在
程序2
终止后启动。如果
program1
仍在运行,
kill$将终止它。

$
是最近后台进程的pid,可以用作
kill$用于此命令集的“program3”插槽。感谢它的工作。除非当我试图将program1的输出重定向到一个文件时,我会得到一个bash语法错误,说“unexpected token near”;”。我去掉了第一个“;”并且它没有语法错误。基本上是:“program1&program2;kill$!”事实上,
&
占用相同的语法槽,因此不必同时使用这两种语法槽(正如您所发现的),这是一个错误。