Ich verstehe die Ausgabe des Befehls lsof nicht.
Wenn ich schreibe
lsof -p PID
Ich bekomme 4 Zeilen und wenn ich schreibe
lsof | grep PID
Ich bekomme Hunderte von Zeilen.
Sollte es nicht dasselbe Ergebnis liefern?
Vielen Dank für Ihre Antworten. Hier werden ausgegeben. Sieht aus, als wäre es ein Unterprozess oder was bedeuten diese Aufgaben?
lsof -p 29076
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied)
java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied)
java 29076 pr txt unknown /proc/29076/exe (readlink: Permission denied)
java 29076 pr NOFD /proc/29076/fd (opendir: Permission denied)
lsof |grep 29076|head -20
java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied)
java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied)
java 29076 pr txt unknown /proc/29076/exe (readlink: Permission denied)
java 29076 pr NOFD /proc/29076/fd (opendir: Permission denied)
java 29076 300 pr cwd unknown /proc/29076/task/300/cwd (readlink: Permission denied)
java 29076 300 pr rtd unknown /proc/29076/task/300/root (readlink: Permission denied)
java 29076 300 pr txt unknown /proc/29076/task/300/exe (readlink: Permission denied)
java 29076 300 pr NOFD /proc/29076/task/300/fd (opendir: Permission denied)
java 29076 329 pr cwd unknown /proc/29076/task/329/cwd (readlink: Permission denied)
java 29076 329 pr rtd unknown /proc/29076/task/329/root (readlink: Permission denied)
java 29076 329 pr txt unknown /proc/29076/task/329/exe (readlink: Permission denied)
java 29076 329 pr NOFD /proc/29076/task/329/fd (opendir: Permission denied)
java 29076 330 pr cwd unknown /proc/29076/task/330/cwd (readlink: Permission denied)
java 29076 330 pr rtd unknown /proc/29076/task/330/root (readlink: Permission denied)
java 29076 330 pr txt unknown /proc/29076/task/330/exe (readlink: Permission denied)
java 29076 330 pr NOFD /proc/29076/task/330/fd (opendir: Permission denied)
java 29076 331 pr cwd unknown /proc/29076/task/331/cwd (readlink: Permission denied)
java 29076 331 pr rtd unknown /proc/29076/task/331/root (readlink: Permission denied)
java 29076 331 pr txt unknown /proc/29076/task/331/exe (readlink: Permission denied)
java 29076 331 pr NOFD /proc/29076/task/331/fd (opendir: Permission denied)
lsof - liste offene Dateien auf, versuche die Manpage für lsof zu lesen
#man lsof
lsof -p PID
Listet offene Dateien auf, die mit der Prozess-ID der PID verknüpft sind.In Ermangelung von Optionen listet lsof alle offenen Dateien auf, die zu allen aktiven Prozessen gehören. Wenn Sie dies tun
lsof | grep PID
, werden alle offenen Dateien aufgelistet, die zu allen aktiven Prozessen gehören, und es wird die PID-Nummer abgefragt, die mit der PID selbst und auch überall dort übereinstimmen kann, wo die PID als Teil anderer PIDs erscheint und möglicherweise auch der untergeordnete Prozess der PID ist bald.Wenn Sie also verwenden möchten,
lsof | grep PID
sollten Sie die PID genau abgleichen, wie eine vollständigelsof | grep -w PID
Wortübereinstimmung. Wenn PID andere untergeordnete Prozesse hat, werden jedoch immer noch mehr Zeilen angezeigt.quelle
Ich habe dies auf meinem System versucht und beide Befehle generieren die gleichen Listen. Ich schlage vor, Sie versuchen beide Befehle mehrmals hintereinander, um sicherzustellen, dass der Status des Prozesses stabil ist. Laut der Manpage und Ihren Ausgaben ist dies die einzige Erklärung, die ich haben kann.
quelle
Einige Versionen von lsof enthalten eine Thread-ID. Dies kann durch den in der Ausgabe angezeigten TID-Spaltenkopf bestimmt werden. Eine solche Ausgabe führt zu doppelten Einträgen, da bei lsof möglicherweise für jeden Thread ein doppelter Eintrag angezeigt wird.
https://support.datastax.com/hc/en-us/articles/209826153-lsof-shows-Cassandra-is-holding-a-large-amount-of-files-open
quelle