TID에서 PID 가져오기

TID에서 PID 가져오기

난 달린다iotop우선순위를 낮춰야 할 경우를 대비해 디스크가 많은 프로그램을 확인하세요. 일반적으로 이것으로 충분하지만 iotop스레드 ID(TID)만 표시됩니다. 때로는 어떤 프로세스가 담당하는지에 대한 자세한 정보를 찾을 수 있도록 프로세스 ID(PID)를 알고 싶습니다.

불행하게도 psTID(SPID, LWP라고도 함)를 표시하는 것이 가능하지만 PID 목록과 마찬가지로 TID 목록을 가져오는 플래그가 없습니다 --pid. 내가 할 수 있는 일은 TID를 나열한 다음 grep출력을 나열하는 것뿐입니다. 예를 들어 스레드 ID가 792인 경우 다음을 수행할 수 있습니다.

$ ps -eLf | grep ' 792 '

효과는 꽤 좋은데 좀 촌스럽네요.

더 좋은 방법이 있나요?

답변1

언제든지 다음과 같이 할 수 있습니다.

ps -eLo pid= -o tid= | awk '$2 == 792 {print $1}'

리눅스의 경우:

$ readlink -f /proc/*/task/792/../..
/proc/300

또는 다음을 사용하여 zsh:

$ echo /proc/*/task/792(:h:h:t)
300

관련 정보