問題タブ [lsof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
6711 参照

java - URLConnection を使用する Java アプリで「開いているファイルが多すぎます」

私は次のように小さなJavaプログラムを書きました:

このクラスのメソッドを呼び出す別のプログラムを作成すると、「開いているファイルが多すぎます」と表示され、OS はユーザーのログインを拒否します。呼び出されるスクリプトは次のとおりです。

問題が再発したとき、ハンドルの占有率が増加していることに気付きました。以下は、コマンド「lsof -p PROGRAM_PID」を実行したときのメッセージです。

ハンドル (パイプ ソケット イベントプール) の数は最大数千です。

これを回避するために多くの方法を試しましたが、失敗しました。上記のプログラムの欠陥を教えてくれる人はいますか?

0 投票する
5 に答える
83823 参照

macos - Mac OS X でファイルを使用しているプロセスを確認する

ファイルを追跡して、どのプロセスがそのファイルにアクセスしているかを確認できるようにしたいと考えています。それは可能ですか?アクティビティ モニターで開いているプロセスのリストを確認できることは知っていますが、すぐに表示されるようになっていると思います。この理由は、フレームワークを使用していて、デバッグ バージョンではなくシステム バージョンのフレームワークが使用されていると思われ、どのプロセスがそれに触れているかを確認したいからです。

0 投票する
2 に答える
5794 参照

linux - Linuxでファイルを移動するのは、別のプロセスで使用されていない場合のみです。

lsofコマンドを使用すると、ファイルが何らかのプロセスで使用されているかどうかを判断できますが、使用するファイルをアトミックにチェックし、使用されていない場合にのみ移動する必要があります。これらのファイルは、私が制御できない他のさまざまなプログラムで使用されているため、アドバイザリロックを使用できません。目的は、他のプロセスがそのファイルを変更するのを防ぐことです。そのため、プロセスが開いている間にファイルを移動するだけでは問題があります。解決策はありますか?

更新:私の目的に合っていると思う解決策が私に思い浮かびました。最終的な目標は、他のプログラムがファイルの変更を完了したときに、これらのファイルを最終状態で処理することです。ファイルを別のディレクトリに移動すると、lsofを使用して、古いパスを介してファイルがまだ使用されているかどうかを確認できます。もしそうなら、それが使用されなくなるまで後でもう一度チェックして、ファイルを処理します。ファイルを別のディレクトリに移動することにより、ユーザーとプログラムからファイルを非表示にします。ユーザーとプログラムに古いディレクトリのファイルを表示させたくないのは、lsofを使用してファイルを処理する間にファイルを開く機会が与えられるためです。つまり、ファイルを変更された状態で処理することになります。

0 投票する
1 に答える
1146 参照

linux - 決定されたポートの接続数を取得します

ポート内の接続数を返すLinux関数を探しています。

「lsof」について調査していましたが、ドア内の接続のみを出力し、すべての接続の合計を返しません。たとえば、ポート80に2つの接続がある場合、接続ではなく2を返します。

0 投票する
1 に答える
1637 参照

sockets - ソケット記述子のリーク - lsof はプロトコルを識別できませんか?

コマンドを実行したときの「プロトコルを識別できません」とは何ですか/usr/sbin/lsof -p 20085。の出力をlsof以下に示します

そして、なぜこのリークは常に靴下0,5でした.

注:実行時に常に開かれている必要がある3つのソケットを作成しています。これとは別に、作成されたファイル/ソケットはありません。私の質問は、約5000以上になり、プロトコルを識別できないということです。これはなぜですか?

ありがとう。

0 投票する
1 に答える
285 参照

python - ctypes と libproc proc_pidinfo を使用した MacOS 10.6 での Python 2.5 と Python 2.6 の奇妙な違い

PID を指定して、プロセスの現在の作業ディレクトリを特定しようとしています。コマンド ライン ユーティリティ lsof も同様のことを行います。Python スクリプトのソースは次のとおりです。

ただし、このスクリプトは Python 2.6 では期待どおりに動作しますが、Python 2.5 では機能しません。

(PID 2698 は「Activity Monitor.app」です)。戻り値が異なることに注意してください。このプログラムは ctypes に強く基づいているため、これを引き起こす Python 自体の違いは想像できません。自作の Python 3.2 でも (Python 2.5 と同じ) 動作が発生します。

奇妙さを追跡するのに役立つ、または2.5の解決策を考え出すのに役立つバージョン情報はわかりませんが、ここにいくつかのものがあります:

ここで何が起こっているかについて手がかりを持っている人に感謝します:)

0 投票する
2 に答える
1836 参照

node.js - Node.jslsof-多くの開いているDB接続

サーバーで「lsof|grep node」を実行すると(node.jsアプリを実行すると)、約1000以上の回線(ポート9160へのdb接続)が得られます。各行は次のようになります。

これはテストnode.jsサーバーであり、非常に単純なことを実行します。(Helenusモジュールを使用してCassandra DBにリクエストを記録します)

現時点で接続が1〜2しかないはずなのに、開いている接続が非常に多いことに驚きました。

これは、ノードアプリでDB接続を適切に終了していないことを意味しますか?私のコードは以下の通りです。ありがとう。

0 投票する
2 に答える
7685 参照

linux-kernel - ファイル記述子リークのデバッグ (カーネル内?)

私はこの比較的大きなコード ベースで作業しており、ファイル記述子のリークが見られ、特定のプログラムを実行した後にプロセスがファイルを開くことができないと不平を言い始めます。

これは 6 日後に発生しますが、/proc/sys/fs/file-max の値を 9000 に減らすことで、3 ~ 4 時間で問題を再現できます。

常に多くのプロセスが実行されています。リークの原因となっている可能性のあるいくつかのプロセスを特定することができました。ただし、lsof または /proc//fd を介したファイル記述子のリークは見られません。

リークが疑われるプロセス (相互に通信する) を強制終了すると、リークはなくなります。FDがリリースされます。

cat /proc/sys/fs/file-nr in a while(1) ループはリークを示しています。ただし、どのプロセスでもリークは見られません。

リークが発生していることを検出するために私が書いたスクリプトを次に示します。

./monitor.fd.sh 500 2 & テール -f pid_monitor.txt

前に述べたように、 /proc//fd でのリークは見られませんが、リークは確実に発生しており、システムのファイル記述子が不足しています。

カーネル内の何かがリークしていると思われます。Linux カーネル バージョン 2.6.23。

私の質問は次のとおりです。

  1. 「ls /proc//fd」は、 pid でプロセスにリンクされたライブラリのリスト記述子を表示します。そうでない場合、リンク先のライブラリにリークがあるかどうかを判断するにはどうすればよいですか。

  2. リークがユーザー空間とカーネルにあることを確認するにはどうすればよいですか。

  3. リークがカーネルにある場合、どのツールを使用してデバッグできますか?

  4. あなたが私に与えることができる他のヒント。

辛抱強く質問に答えてくれてありがとう。

本当に助けていただければ幸いです。

0 投票する
4 に答える
20899 参照

android - lsofなしで開いているファイルをチェックする方法

Linuxでは、lsofを使用して、ファイルがどのプロセスによって開かれているかを確認します。私は Android デバイスを持っていますが、lsof コマンドはありません。特定のファイルを開いているプロセスを見つけることは可能ですか?

MediaPlayer が fd を保持していることを確認するために使用しますが、閉じている必要があります。

0 投票する
2 に答える
1804 参照

perl - Linux の lsof コマンドに似た perl 関数はありますか?

プロセスが実行されているかどうかに基づいてログ ファイルをアーカイブするシェル スクリプトがあります。ログ ファイルがプロセスで使用されていない場合は、アーカイブします。これまで、使用中のログ ファイルを取得するために lsof を使用していましたが、今後は perl を使用してこの機能を実行することにしました。

Linux の lsof が実行できるものに似た perl モジュールはありますか?