微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 bash 中的 ctrl-c 发送到 perf 命令

如何解决将 bash 中的 ctrl-c 发送到 perf 命令

linux 中的 perf-stat 命令会一直运行,直到按下 crtl-c。我正在尝试在脚本中使用此命令来分析循环。模拟发送 crtl-c 的推荐解决方案是发出带有 -2 或 -SIGINT 标志的 kill 命令。 但是,这对我不起作用。我使用的是 RHEL。

脚本大致如下:

for i in {1..12}
do
pid=$1
perf stat -e dTLB-loads -p $pid > perf.out&
perf_pid=$!
sleep 10
kill -SIGINT $perf_pid
done

即使在 kill 之后,perf 进程仍然处于活动状态。当脚本结束时,所有的 ctrl-c 都会在最后执行

解决方法

阅读 man page for perf 时,我遇到了 --control 选项,这似乎是分析运行命令的一部分的正确方法。 但是,此选项在 RHEL 上不可用。

通过使用 -INT 选项杀死 mentioned here,我找到了解决方法。由于某种原因 -2 或 -SIGINT 在 RHEL 上不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。