ps -efT
(where -T
= ) 를 수행하면 Show threads, possibly with SPID column.
모든 스레드가 예상한 것과 동일한 PID를 갖는 것을 볼 수 있습니다.
myroot 24958 24958 7942 0 20:20 pts/12 00:00:00 java -jar myapp.jar
myroot 24958 24959 7942 0 20:20 pts/12 00:00:11 java -jar myapp.jar
myroot 24958 24960 7942 0 20:20 pts/12 00:00:00 java -jar myapp.jar
myroot 24958 24961 7942 0 20:20 pts/12 00:00:00 java -jar myapp.jar
myroot 24958 24962 7942 0 20:20 pts/12 00:00:00 java -jar myapp.jar
myroot 24958 24963 7942 0 20:20 pts/12 00:00:00 java -jar myapp.jar
myroot 24958 24964 7942 0 20:20 pts/12 00:00:00 java -jar myapp.jar
myroot 24958 24965 7942 0 20:20 pts/12 00:00:00 java -jar myapp.jar
위에서 볼 수 있듯이 모든 스레드는 동일한 PID를 공유/표시합니다 24958
.
이제 내가 같은 일을 할 때맨 위또는맨 위, 각 스레드의 PID가 서로 다르기 때문에 신경이 쓰입니다. 모든 스레드에 대해 동일한 PID를 표시하는 방법이 있습니까? 아래는 축소된 출력입니다 top -H -p 24958
(문제를 설명하고 표시할 수 있도록 -p와 함께 top을 사용했습니다).
top - 21:42:44 up 9 days, 18:38, 0 users, load average: 0.00, 0.26, 0.82
Threads: 32 total, 0 running, 32 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 12542.5 total, 10135.3 free, 826.8 used, 1580.4 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 11439.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24958 myroot 20 0 7036228 340720 21084 S 0.0 2.7 0:00.00 java
24959 myroot 20 0 7036228 340720 21084 S 0.0 2.7 0:11.99 java
24960 myroot 20 0 7036228 340720 21084 S 0.0 2.7 0:00.43 GC Thread#0
24961 myroot 20 0 7036228 340720 21084 S 0.0 2.7 0:00.00 G1 Main Marker
24962 myroot 20 0 7036228 340720 21084 S 0.0 2.7 0:00.00 G1 Conc#0
--and few more threads.
를 사용할 때 top -H
모든 스레드가 동일한 PID를 가지고 있다는 것을 확인하지 않는 한 모든 스레드가 동일한 프로세스에 속해 있는지 알 수 있는 방법이 없습니다.
top(또는 htop)을 사용할 때 모든 스레드에 대해 동일한 PID를 얻는 방법에 대한 지침입니다. 내가 관찰한 대로 htop에도 동일한 문제가 있습니다.)
@ user1686의 답변에 따라 TGID 열을 사용하십시오. 스레드의 PID가 무엇을 의미하는지 알고 싶습니다.
답변1
htop을 사용하려면 열이 필요합니다(>를 통해)TGID
>를 통해 추가하세요 .F2목록). 동일한 이름으로 top에서도 작동하지만 top을 구성하는 방법을 모르겠습니다.
Linux "프로세스"는 실제로 스레드 그룹(또는 작업 그룹)일 뿐이며 top/htop의 "PID" 열은 실제로 스레드 ID(작업 ID)를 표시합니다. 같은클론(2)시스템 호출은 두 가지를 모두 생성하는 데 사용됩니다 CLONE_THREAD
. 자세한 내용은 을 참조하세요.