监视 ImageMagick 并在其运行时间过长时终止

监视 ImageMagick 并在其运行时间过长时终止

我使用一个调用的程序图像魔术师的命令行命令。这些命令应该立即运行——大概 1 到 2 秒。但是,最近我注意到很多命令都卡住了。

冻结进程

我使用 monit 来监控服务器,并在内存超载时观察某些事情。有什么好方法可以监控 ImageMagick?我想如果进程已经存在 1 分钟,则终止它们。但是,我不想一刀切地杀死所有convert进程。

我该怎么办?

谢谢!

答案1

ps -ef您可以解析(或在 BSDish 系统上)的输出ps -axf来查找启动时间 ( STIME) 大于 的进程X,或者您可以使用TIME(CPU 使用的秒数)。


这个解决方案的实现留给读者作为练习,它相对简单。提示:

  • 你可以用 shell 脚本来完成(for line in top; do ... done
  • grepawk(或cut)是你的朋友
  • STIME根据进程运行的时间长短更改格式。
    如果我们在 24 小时内进行讨论,您不必担心这一点,您可以终止任何不符合 24 小时前开始的预期格式的进程。
  • echo "I want to kill $PID ($line)"在让它真正地在头部拍摄进程之前,请先测试你的脚本( )!

答案2

是否可以修改 ImageMagick 的调用方式?在执行 ImageMagick 之前使用 ulimit/limit 设置限制将允许您设置 CPU 秒数,内核将为您处理此事。

http://www.cims.nyu.edu/cgi-comment/man.cgi?section=1&topic=limit

答案3

相关内容