2015-10-15 6 views
5

lsof scheint doppelte Einträge für mich zu haben.Understanding lsof output

1:fs:java  19644 4961  abc mem  REG    252,1 126331 118159613 abc.jar 
1:fs:java  19644 4962  abc mem  REG    252,1 126331 118159613 abc.jar 

lsof Format ist:

COMMAND  PID USER FD  TYPE   DEVICE SIZE/OFF  NODE NAME 

19644 PID ist. abc ist USER. Was ist 4961 und 4962? Und warum haben wir 100 davon? Nur der Unterschied zwischen all diesen ist 3. Spalte 4961, 4962 und so weiter?

+2

Gibt es ein Multi-Threading in Java program..it die TID (Thread-ID) sein kann –

+0

Ja, so scheint es TID zu sein. Es gibt eine Diskussion, die das sich verändernde "lsof" Verhalten zwischen verschiedenen Versionen [hier] erwähnt (https://github.com/draios/sysdig/issues/300) – Jerzy

Antwort

0

Von der lsof 4.89 man page: "-K wählt die Liste der Aufgaben (Threads) von Prozessen, auf Dialekten, wo Task (Thread) Berichterstattung ist unterstützt."

Version 4.89 von lsof auf Ubuntu 16.04 kann einen TID-Header mit der Markierung -K anzeigen.

$ lsof -K /usr/share/jenkins/jenkins.war 
COMMAND PID TID USER FD  TYPE DEVICE SIZE/OFF NODE NAME 
java 6533 6534 jenkins cwd unknown      /proc/6533/task/6534/cwd (readlink: Permission denied) 
java 6533 6534 jenkins rtd unknown      /proc/6533/task/6534/root (readlink: Permission denied) 
java 6533 6534 jenkins txt unknown      /proc/6533/task/6534/exe (readlink: Permission denied) 
java 6533 6534 jenkins 0u unknown