Top의 구체적인 프로세스를 확인하는 방법

Top의 구체적인 프로세스를 확인하는 방법

위로 특정 프로세스를 추적하는 비교적 간단한 옵션이 있습니까?
이상적으로는 사람이 읽을 수 있는 값으로 프로세스를 식별합니까? 예를 들어 chrome또는 java.

즉, 상단에 제공된 모든 일반적인 정보를 보고 싶지만 결과는 제공된 매개변수로 필터링됩니다. "크롬" 또는 "자바"

답변1

내 또 다른 대답여기, 다음과 같은 작업을 수행할 수 있습니다.

top -p `pgrep "java"`

답변2

당신은 단순히 사용할 수 있습니다grep:

NAME
       grep, egrep, fgrep, rgrep - print lines matching a pattern

SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

DESCRIPTION
       grep  searches  the  named  input  FILEs (or standard input if no files are named, or if a single
       hyphen-minus (-) is given as file name) for lines containing a match to the  given  PATTERN.   By
       default, grep prints the matching lines.

원하는 출력(ex-chrome)을 얻으려면 다음 명령을 실행하십시오.

top | grep chrome

여기서는 grep파이프를 사용 |하므로 top& 출력을 (입력으로) grep병렬로 실행 하고 중지될 때까지 일치하는 라인을 필터링합니다 .topgrepgrep chromechrometop

답변3

top -p `pgrep -d "," java`

설명하다:

  1. top -p pid1,pid2: PID 사이를 쉼표로 구분하여 여러 프로세스 정보를 표시합니다.,
  2. pgrep -d "," java: 모든 Java 프로그램의 pid를 인쇄합니다. pid는 기본적으로 개행 문자로 구분됩니다. 상단의 요구사항에 따라 -d ","분리하여 사용하세요.,

이와 같은 오류가 표시되면 top: -p argument missing실행 중인 Java 프로그램이 없다는 의미입니다. 즉, pgrep의 출력이 없다는 의미입니다.

답변4

다른 좋은 답변도 제공되었지만 얼마 전에 스크립트를 작성하고 이름을 ptop으로 지정했는데 효과가 있었습니다.

#!/bin/sh
top -p $(pidof "$@" |sed s#\ #,#g) 2>/dev/null
if [ $? -ne 0 ]; then
  echo No processes with the specified name\(s\) were found
fi

이는 여러 프로세스 이름(예: ptop bash chrome) 지정을 지원하고 지정된 이름의 프로세스가 실행되고 있지 않을 때 더 나은 오류 메시지를 제공합니다.

관련 정보