Я использую программу, которая вызывает ImageMagickКоманды командной строки. Предполагается, что они сработают мгновенно - возможно, 1 или 2 секунды. Однако в последнее время я заметил, что многие из них застряли.
Я использую monit для наблюдения за сервером и наблюдаю за некоторыми вещами, когда память выходит за рамки. Как лучше всего посмотреть ImageMagick? Я бы хотел убить процессы, если они были живы в течение 1 минуты. Однако я не хочу убивать всех одеялом convert
процессы.
Что мне делать?
Спасибо!
Вы можете проанализировать вывод ps -ef
(или ps -axf
в системах BSDish), чтобы найти процессы с временем начала (STIME
) лучше чем X
, или вы можете использовать TIME
(Используется процессорное время в секундах).
Реализация этого решения оставлена в качестве упражнения для читателя, это относительно просто. Подсказки:
for line in top; do ... done
)grep
и awk
(или cut
) твои друзья STIME
изменяет формат в зависимости от того, как долго выполняется процесс.echo "I want to kill $PID ($line)"
) прежде, чем позволить ему реально стрелять процессами в голову!Можно ли изменить способ вызова ImageMagick? Установка лимитов с помощью ulimit / limit перед запуском ImageMagick позволит вам установить количество секунд процессора, и ядро позаботится об этом за вас.
http://www.cims.nyu.edu/cgi-comment/man.cgi?section=1&topic=limit