Apacheで使用してもstrace
応答がない場合は、次の結果が表示されます。
[pid 13704] fcntl(57, F_SETLK, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, len=1}) = -1 EAGAIN (Resource temporarily unavailable)
それはどういう意味ですか?プロセスが再び反応するにはどのようなロックが必要ですか?
答え1
fcntl(57, F_SETLK, …)
プロセスがファイル記述子57で開かれたファイルをロックしようとしていることを意味する。このエラーは、EGAIN
他のプロセスがすでにロックを占めているため、ロックが失敗したことを意味します。ロックは、オフセット1073741824からオフセット1073741825までのファイル部分にあります。
Linuxでは、次のものを使用できます。lslocks
どのロックがかかっているかを確認してください。 Apacheが待機しているロックの所有者が誰であるかを判断するには、そのロックを含むファイルを知る必要があります。lsof -p $pid
これにより、fd 57でどのファイルが開いているかがわかります。
プロセスを続行するにはロックが必要であると仮定すると、ロックを所有している他のプロセスがロックを解除するまで応答しません。問題は、リソースが利用できないため作成する必要がなく、既存のリソースが現在使用中であることです。