fluentdのexecで渡すプログラムが落ちる時の対応方法です。
自分の環境ではtd-agentを使っていたのですが。
execでphpを実行した際に実行できなくなっていました。
解決方法
execでプログラムを実行する前にLD_PRELOADをアンセットします。
phpの場合はexec.shなど作って
unset LD_PRELOAD
php hoge.php
などとします。
原因
バージョンによってtd-agentの起動スクリプトに以下のようなコードがあります。
use jemalloc to avoid fragmentation
if [ -f "/usr/lib/fluent/jemalloc/lib/libjemalloc.so" ]; then
export LD_PRELOAD=/usr/lib/fluent/jemalloc/lib/libjemalloc.so
fi
if [ -f "/usr/lib64/fluent/jemalloc/lib/libjemalloc.so" ]; then
export LD_PRELOAD=/usr/lib64/fluent/jemalloc/lib/libjemalloc.so
fi
外部プログラムを実行する際この環境変数が引き継がれて実行されるようです
「libjemalloc.so」に関しては結構深そうなので割愛でー