PPID를 표시하고 파일로 출력하려면 top을 사용하세요.

PPID를 표시하고 파일로 출력하려면 top을 사용하세요.

저는 Linux top 명령을 사용하여 프로세스의 CPU, RAM, 계산 시간은 물론 프로세스가 생성하는 모든 하위 프로세스를 모니터링하려고 합니다.

다음 구문을 사용하여 top 명령의 출력을 저장할 수 있음을 발견했습니다.

$ top -b > top.txt

그런 다음 Python 스크립트를 사용하여 결과를 구문 분석합니다. 하지만 모니터링 중인 특정 프로세스와 해당 하위 프로세스를 확인할 수 없습니다.

ftop이 실행되는 동안 PPID 필드를 입력하여 top에 추가할 수 있지만 해당 옵션을 사용하는 일괄 모드에서는 작동하지 않는다는 것을 알았습니다 -b.

결과를 구문 분석할 때 관심 있는 프로세스를 찾을 수 있도록 PPID를 표시하고 top 명령의 출력을 저장하는 방법이 있습니까?

내 특정 문제는 배치 모드에서 top을 사용할 때 출력 파일에 PPID를 포함하는 것입니다.프로세스의 CPU, RAM 및 컴퓨팅 시간을 모니터링하기 위한 더 나은 제안이 있다면 그것도 환영할 것입니다.

답변1

대화형 상단 디스플레이에 PPID(또는 기타 필드)를 추가한 후 간단히 다음을 사용할 수 있습니다 W(수도승). 그런 다음 종료( q)하고 사용하면 top -b대화형으로 변경한 필드가 맨 위에 포함되어 표시됩니다.

답변2

topps프로세스의 대화형 및 업데이트된 변형을 표시하기 위해 만들어졌습니다. 여기에서 명령을 사용하는 것이 더 쉽고 자연스럽습니다 ps. 예를 들어, 상위 프로세스 정보의 경우:

ps -ejf > top.txt

또는 사용자의 경우

ps -ejf | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt

또는 프로세스 트리의 상위/하위를 트리 형식으로 시각화합니다.

ps auxfww > top.txt

PPID와 단순 트리 형식의 조합:

ps -ejfH | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt

관련 정보