/proc에서 프로세스 ID를 구문 분석하면 프로세스의 각 스레드가 고유한 ID를 갖고 있음이 분명해집니다. 동일한 프로세스의 모든 스레드가 /proc/${pid}/task/
.
하지만 제 질문은 목록의 첫 번째 ID(가장 낮은 숫자를 가진 ID)가 프로세스의 메인 스레드라고 가정할 수 있느냐는 것입니다.
내가 궁극적으로 하고 싶은 것은 ps
하위 프로세스를 사용하거나 쉘을 호출하지 않고 Python으로 빠른 스크립트를 작성하는 것입니다.
답변1
프로세스 ID(및 스레드 ID)가 재사용 가능하다고 가정할 수 없으므로 순서가 보장되지 않습니다. (새로 부팅한 64비트 시스템에서는 이러한 현상이 발생할 가능성이 적지만 가동 시간이 좋은 시스템에서는 이러한 현상이 나타납니다.)
/proc/${id}/status
에서 대기열에 참여할 수 있습니다 Tgid: nnnnn
.
전임자:
$ cat /proc/8288/status
Name: vlc
State: S (sleeping)
Tgid: 8281 // main vlc process id
Pid: 8288 // thread id