を変更すると、奇妙な副作用がありLD_LIBRARY_PATHます。
ライブラリを含むパスを追加すると、たとえば次のようになります。
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_path/lib
その後、すべてが信じられないほど遅くなります。たとえば、simplelsは 10 秒の長さにすることができます。
ldd出力は変更の前後でまったく同じLD_LIBRARY_PATHであり、スローの実行をデバッグしようとしましたls:straceどちらの場合もまったく同じ実行が得られます。の実行中に実行がスタックすることさえありませんls( strace10 秒のラグの間に何も出力せず、突然完全に実行されるためls)。だから私はそれが私のシェルから来るかもしれないと思ったが、これは同じで、strace私のbashで実行lsし、両方の場合で実行すると同じstrace出力が得られる:シェルが実行lsされ、その実行の終了を待つ(straceラグの前の最後の出力straceはwaitpid(...))。だから私は何か問題がの打ち上げの間に起こると思いますlsカーネルレベルの問題であるかのように、その実行。これは、aが(0 cpu 使用量)sleepで作成されたかのように機能します。ls
ラグの間、私の CPU とネットワーク アクティビティは完全に正常です...
新しい LD パスのライブラリは「標準ライブラリ」と競合しないことに注意してください。したがってls、私の例では邪魔になりません。
LD_LIBRARY_PATHしたがって、副作用についてのより深い説明や、私の例を深くデバッグする方法に興味があります。