如何优雅地终止 Linux perf 工具进程

如何优雅地终止 Linux perf 工具进程

我正在尝试使用 Linux 性能工具perf来监控存在来宾 VM 的主机上的 kvm 事件。

我调用的命令perf

perf kvm stat record

过一段时间后,我会按下来Ctrl + C停止它,它会显示一些信息,比如它被唤醒写入数据的次数,并且它会花费一些时间才真正退出,我猜它正在写入数据。

基本上我想要实现的是perf1 分钟后自动停止该进程。这是我的脚本的原型:

perf kvm stat record &
pid=$!
sleep 60
sudo kill -2 $pid

这里的问题是,当我以这种方式终止进程时,它将无法正确地将数据写入磁盘。并且我尝试发送信号29,但对我来说都不起作用。

有谁知道如何正确中断perf进程以便它完成数据写入然后退出?

答案1

根据 perf kvm 描述这里,您必须使用 SIGINT(7) 来终止 perf 进程。这可确保 perf 正确地将收集的数据转储到文件中。

perf kvm stat record &
pid=$!
sleep 60
sudo kill -INT $pid

相关内容