观看ImageMagick并在运行时间过长时进行查杀

我使用调用ImageMagick的命令行命令的程序。 这些都应该立即运行 – 也许1或2秒。 不过,最近我注意到有一堆卡住了。

冻结过程

我使用监视器来监视服务器,并在内存溢出时监视某些事情。 什么是观看ImageMagick的好方法? 如果他们活着1分钟,我想杀死这些进程 。 但是,我不想做一个毯子杀死所有的convert过程。

我该怎么办?

谢谢!

您可以parsingps -ef (或者BSDish系统上的ps -axf )的输出以查找开始时间( STIME )大于X进程,也可以使用TIME (使用的CPU秒数)。


这个解决scheme的实现留给读者来做一个练习,比较简单。 提示:

  • 你可以用一个shell脚本来完成它( for line in top; do ... done
  • grepawk (或cut )是你的朋友
  • STIME根据进程运行的STIME更改格式。
    如果我们在24小时内讨论,则不必担心这个问题,并且可以杀死任何与<24小时前发布的内容不符合预期格式的进程。
  • 首先testing你的脚本( echo "I want to kill $PID ($line)" ),然后让它真的在头上拍摄进程!

有没有可能修改ImageMagick被调用的方式? 在使用ImageMagick之前用ulimit / limit设置限制将允许你设置CPU秒数,内核将为你处理。

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

BASH FAQ条目#68:“如何运行一个命令,让它在N秒后中止(超时)?”