/proc에서 프로세스 ID/이름, 스레드 ID를 구문 분석합니다.

/proc에서 프로세스 ID/이름, 스레드 ID를 구문 분석합니다.

/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

관련 정보