Не удается найти процессы, неиспользуемые в течение получаса

StackOverflow https://stackoverflow.com/questions/791912

  •  16-09-2019
  •  | 
  •  

Вопрос

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

ps ux

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

Как вы можете обнаружить, что процессы не использовались в течение получаса?

Это было полезно?

Решение

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

Обновить

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top