画像変換ツールとして強力な ImageMagick(http://www.imagemagick.org/) ですが。
最近あるサイトでImageMagick利用している際に、/tmp以下に大容量のmagick-xxxxxテンポラリファイルを生成してディスクを使い果たしてサーバーもろともダウン、、、orz
ってな現象が頻発していたので、(変換できないエラーを追う前に)サーバーを止めないように暫定策をうつことにしました。
ImageMagickには各種リソースを制限する値(MAX値)があり、以下のコマンドを実行すると確認できます。
convert -list resource
制限できる値の種類には time があり、これはImageMagickの実行時間(単位:秒)を制限できます。
ちなみに以下のようにコマンドを実行すると1秒のタイムリミットを指定して画像の変換を行なう事ができます。
convert -limit time 1 source.gif destination.gif
この値は環境変数で指定する方法もあるので、つぎのコマンドも上記と同様の結果を得ることができます。
export MAGICK_TIME_LIMIT=1
convert source.gif destination.gif
or
MAGICK_TIME_LIMIT=1 convert source.gif destination.gif
以上のように指定して実行し、1秒以上かかった場合はエラー出力(2)に
convert: time limit exceeded `' @ fatal/cache.c/GetImagePixelCache/2095.
のようなメッセージが表示され、返り値には 1 が返されます。
↓の本家サイトのオプションを読むとさらに幸せになると思います。
(英語の読めない私などは不幸せ... orz)
http://www.imagemagick.org/script/command-line-options.php#limit
(ん!?もしかして area がテンポラリファイルのサイズ制限!?)
あとは、番外篇として...
Linux系OSには標準(?)で timeout コマンドがあるので、これを使って実行時間を制限することもできます。これならImageMagickに限らず実行時間を制限できます。
timeout 1 convert source.gif destination.gif
timuout コマンドについて詳しくは man を見てネ(はぁと
最近あるサイトでImageMagick利用している際に、/tmp以下に大容量のmagick-xxxxxテンポラリファイルを生成してディスクを使い果たしてサーバーもろともダウン、、、orz
ってな現象が頻発していたので、(変換できないエラーを追う前に)サーバーを止めないように暫定策をうつことにしました。
ImageMagickには各種リソースを制限する値(MAX値)があり、以下のコマンドを実行すると確認できます。
convert -list resource
制限できる値の種類には time があり、これはImageMagickの実行時間(単位:秒)を制限できます。
ちなみに以下のようにコマンドを実行すると1秒のタイムリミットを指定して画像の変換を行なう事ができます。
convert -limit time 1 source.gif destination.gif
この値は環境変数で指定する方法もあるので、つぎのコマンドも上記と同様の結果を得ることができます。
export MAGICK_TIME_LIMIT=1
convert source.gif destination.gif
or
MAGICK_TIME_LIMIT=1 convert source.gif destination.gif
以上のように指定して実行し、1秒以上かかった場合はエラー出力(2)に
convert: time limit exceeded `' @ fatal/cache.c/GetImagePixelCache/2095.
のようなメッセージが表示され、返り値には 1 が返されます。
↓の本家サイトのオプションを読むとさらに幸せになると思います。
(英語の読めない私などは不幸せ... orz)
http://www.imagemagick.org/script/command-line-options.php#limit
(ん!?もしかして area がテンポラリファイルのサイズ制限!?)
あとは、番外篇として...
Linux系OSには標準(?)で timeout コマンドがあるので、これを使って実行時間を制限することもできます。これならImageMagickに限らず実行時間を制限できます。
timeout 1 convert source.gif destination.gif
timuout コマンドについて詳しくは man を見てネ(はぁと
