Невозможно найти процессы, неиспользованные в течение получаса - PullRequest
1 голос
/ 27 апреля 2009

Вы можете получить подземные процессы по

ps ux

Я ищу способ найти процессы, к которым я не обращался в течение 30 минут.

Как найти процессы, которые не используются в течение получаса?

1 Ответ

4 голосов
/ 27 апреля 2009

Определите «нетронутым» и «неиспользованным». Вы можете многое узнать, используя параметр f для ps (1) в BSD-подобных системах, -o для Solaris и Sys / V-подобных систем.

Обновление

Ответ на комментарий:

Ну, ты можешь это сделать. Рассмотрим, например, что-то, что делает периодические пс и сохраняет время процессора, используемое вместе со временем. (На самом деле, вы могли бы сделать это лучше с помощью программы на C, вызывающей соответствующие системные вызовы, но это на самом деле деталь реализации.) Сохраните время выборки и PID и следите за тем, чтобы время CPU PID не изменилось за соответствующий интервал. Это может быть реализовано даже с помощью awk или perl-программ вроде

while true; do
  ps _flags_
  sleep 30
done | awk -f myprog | tail -f

, чтобы каждый раз, когда awk получал вывод ps, он обрабатывал его, идентифицировал кандидатов и отправлял их на показ через tail -f.

Но тогда у вас вполне могут быть процессы-демоны, которые не вызывают часто; мне не ясно, что процессорное время само по себе является хорошей мерой.

В этом смысл определения того, что вы действительно хотите сделать: возможно, есть способ сделать это, но я не могу придумать комбинацию флагов ps в одиночку , которая это сделает.

...