ps 맨페이지에서
tid TID the unique number representing a dispatchable
entity (alias lwp, spid). This value may also
appear as: a process ID (pid); a process group
ID (pgrp); a session ID for the session leader
(sid); a thread group ID for the thread group
leader (tgid); and a tty process group ID for
the process group leader (tpgid).
tgid TGID a number representing the thread group to which
a task belongs (alias pid). It is the process
ID of the thread group leader.
우분투에서는 ps -o pid,tid,tgid,cmd
tid와 tgid가 항상 사용자 프로세스와 커널 스레드(내가 실행하는)의 pid와 동일한 것 같습니다. 이것이 Linux에서도 사실입니까? 왜?
System V나 BSD와 같은 다른 Unix에서도 이것이 사실입니까?
감사해요.
답변1
ps
스레드 정보를 표시하는 작업이 필요합니다 . 그렇지 않으면 프로세스만 나열됩니다.
ps -eL -o pid,tid,comm | awk '$1 != $2'
각 프로세스의 메인 스레드를 제외한 모든 스레드를 표시합니다.즉PID와 TID가 다른 프로세스 테이블의 항목입니다. 중요한 옵션은 -L
이 옵션이 없으면 ps
동일한 pid 및 tid를 가진 항목만 나열된다는 것입니다.
FreeBSD에서는 동등한 옵션이 입니다 -H
. 다른 BSD나 System V에서는 확인하지 않았습니다.