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