프로세스의 휴면/대기 체인 그리기

프로세스의 휴면/대기 체인 그리기

나는 파이프라인 중간에 있는 프로세스가 왜 잠자기 상태이고 데이터 처리에 바쁘지 않은지 종종 궁금했습니다. 내 현재 접근 방식은 다음과 같습니다.

  1. pid흥미로운 것을 발견하다
  2. sudo strace -pt pid차단 시스템 호출 및 객체(fd, child, futex 등) 가져오기
  3. Ctrlcstrace를 분리하려면 클릭하세요 .
  4. 적절한 개체를 찾아보세요/proc/pid
  5. grep /proc/또는 lsof대기 중인 파이프나 프로세스의 다른 쪽 끝을 찾는 경우
  6. 새로운 것으로 #1부터 반복pid

strace함께 잘 작동하지 않는( 특히 자동화하기 어려운) 많은 도구를 결합하는 상당히 느린 프로세스입니다 . 이 루프를 수행하고 프로세스의 대기 체인을 끌어낼 수 있거나 적어도 한 번의 반복을 덜 어색하게 만들 수 있는 도구가 있습니까?

Linux 3.2, Ubuntu LTS 12, x64, VirtualBox(사용 가능한 경우).

답변1

이제 대부분 ps에는 트리 옵션이나 적절한 이름의 관련 유틸리티인 ptree.

현재 작업 시스템에는 ptree가 없으므로 현재 다음을 사용합니다.

ps fauw 

나도 하나 있는 것 같아

ps taux (t making more sense than f)

마지막으로 일부 PS에는 보기에 프로그램 스레드를 포함하는 옵션도 있습니다.

이것이 귀하(그리고 나)가 기대했던 자동화된 솔루션은 아니지만, 내 경험에 따르면 프로세스 트리에는 일련의 "가능한 용의자"가 있을 것이며 일반적으로 트리를 스캔하는 것만으로도 문제가 어디에 있는지 추측할 수 있습니다.

나는

관련 정보