lsof -p PID 및 lsof | grep PID


12

lsof 명령의 출력을 이해하지 못합니다.

내가 쓸 때

lsof -p PID

4 줄을 받고 쓸 때

lsof | grep PID

나는 수백 줄을 얻는다.

동일한 결과를 반환해서는 안됩니까?

답변 주셔서 감사합니다. 출력은 다음과 같습니다. 하위 프로세스 또는이 작업의 의미 인 것 같습니까?

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)

답변:


7

실제 출력을 보지 않으면 정확히 무슨 일이 일어나고 있는지 말하기 어렵지만 lsof -p PID명령이 지정된 PID에 의해 열린 파일을 인쇄하는 동안 lsof | grep PID'PID'가있는 행을 인쇄 한다는 사실에 기인합니다. 라인 어딘가에 있습니다. 예를 들어 PID = 123을 검색하는 경우 grep옵션은 PID의 1231, 1232, 1233 등의 행과 전체 경로의 123 폴더에있는 파일도 인쇄합니다.

편집 : 특정 예에서 차이점은 lsof스레드가 연 파일을 무시 한다는 것 입니다. grep예제 에서 출력을 보면 세 번째 열은 'TID'또는 스레드 ID입니다. TID가없는 줄은 -p옵션 을 사용할 때보고 있던 것과 일치합니다 . TID가있는 줄 (즉, 다른 스레드에서 연 줄)이 추가 항목입니다.


실제로 TID는 맨 페이지에서 "작업 ID 번호"라고하며 반드시 스레드 ID는 아닙니다.
Miljen Mikic

2

lsof-열린 파일을 나열하고 lsof에 대한 매뉴얼 페이지를 읽으십시오. #man lsof

lsof -p PID PID의 프로세스 ID와 관련된 열린 파일을 나열합니다.

옵션이 없으면 lsof는 모든 활성 프로세스에 속하는 모든 열린 파일을 나열합니다. 할 때 lsof | grep PID모든 활성 프로세스에 속하는 모든 열린 파일을 나열하고 PID 번호를 grep합니다. PID 번호는 PID 자체와 일치 할 수 있습니다. PID는 다른 PID의 일부로 나타나며 PID의 하위 프로세스 일 수도 있습니다. 곧.

따라서 사용하려면 lsof | grep PID전체 단어 일치와 같이 PID를 정확하게 일치시켜야 lsof | grep -w PID하지만 PID에 다른 자식 프로세스가 있으면 더 많은 행이 생성됩니다.


0

나는 내 시스템에서 이것을 시도했고 두 명령 모두 동일한 목록을 생성합니다. 프로세스 상태가 안정적인지 확인하기 위해 두 명령을 연속적으로 여러 번 시도하는 것이 좋습니다. 매뉴얼 페이지와 출력에 따르면 이것이 내가 가질 수있는 유일한 설명입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.