web-dev-qa-db-ja.com

ポーリングシステムコールのタイムアウト

straceを添付すると、次のメッセージが多数表示されます。

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)

pollシステムコールがタイムアウトする原因となる、プログラムがアクセスしようとしているファイルを見つけるにはどうすればよいですか?

straceは、デバッグを困難にする多くのメッセージを生成します

13
mahmood

ポーリングシステムコールがタイムアウトする原因となる、プログラムがアクセスしようとしているファイルを見つけるにはどうすればよいですか?

呼び出す:

lsof -p <pid>

そして、問題のファイル記述子が何を参照しているかを確認してください。

Linux上のprocファイルシステムを調べることもできます。

ls -l /proc/<pid>/fd
25

ls -l/proc // fd /->対応するノードIDを取得します。 ss -p | grep-> fdが属するソケットファイルパスを取得します。

0
Kamel Haddad