我试图在命令行中运行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'
如果你能想到一个解决方案,可以使用system()/ fork()完全在Perl脚本中完成,而不是只使用同样好的命令行。
答案 0 :(得分:2)
您希望program1
将&
放入后台:
program1&; program2; kill $!
然后它将与program2
一起运行。 kill $!
($!
是最近落后流程的pid - 即program1
)将在program2
终止后开始。如果program1
仍在运行,kill $!
将终止它。