Я пытаюсь написать сторожевой таймер, который отслеживает некоторые процессы, которые обычно плохо написаны.
Я пробовал 3 вещи.
Проверка /proc/<pid>/stat
один раз каждые 2 секунды, чтобы проверить, не блокирует ли процесс какую-либо блокировку и т. Д. Но этот метод требует значительных ресурсов и, что более важно, не точен.
В некоторых частных процессах, которые у меня естьнаписано, что я посылаю сообщения, похожие на сердцебиение, но это невозможно на стороннем программном обеспечении с закрытым исходным кодом.
Я встречал CONFIG_PROC_EVENTS
, но его функции очень ограничены.
В Linux существует ли способ получения изменений состояния процесса, которые уведомляют процесс прослушивания, когда процесс переходит в спящий режим или становится непрерывным?Или есть лучший способ проверить поведение процесса?