Назад | Перейти на главную страницу

как изящно убить процесс linux perf

Я пытаюсь использовать инструмент производительности linux perf для отслеживания событий kvm на хосте, на котором существует гостевая виртуальная машина.

Команда, которую я вызываю perf является

perf kvm stat record

Через какое-то время я нажму Ctrl + C чтобы остановить его, и он покажет некоторую информацию, например, сколько раз он был разбужен для записи данных, и он потратит некоторое время, прежде чем по-настоящему выйти, что, я полагаю, он записывает данные.

По сути, я хочу автоматически останавливать perf процесс через 1 минуту. Вот прототип моего скрипта:

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

Проблема здесь в том, что когда я завершаю процесс таким образом, он не может правильно записывать данные на диск. И я попытался отправить сигнал 2 и 9у меня ни то, ни другое не работает.

Кто-нибудь знает как правильно перебить perf процесс, чтобы он закончил запись данных, а затем вышел?

Согласно описанию perf kvm Вот, вы должны использовать SIGINT (7), чтобы остановить процесс perf. Это гарантирует, что perf правильно выгружает собранные данные в файл.

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