LoginSignup
0
0

More than 5 years have passed since last update.

fluentd の exec で外部プログラムが動かない時

Posted at

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」に関しては結構深そうなので割愛でー

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0