주어진 상위/하위 프로세스에 따라 ps 출력 형식을 지정합니다.

주어진 상위/하위 프로세스에 따라 ps 출력 형식을 지정합니다.

프로세스 이름 목록이 주어지면 이러한 상위/하위 프로세스가 호출 출력에 나타나지 않기를 원합니다 ps --forest.

이렇게 하면 사물을 추적할 때 살펴봐야 하는 프로세스가 줄어듭니다.

답변1

이는 어려운 방법입니다. 함수는 pgreppid를 반환하는 데 사용됩니다( -v프로세스 이름이 주어지면 제외()). 그런 다음 ps포리스트 목록을 요청하는 함수를 호출합니다.오직필수 PID:

function psexclude {
  case $# in
  (0)
        printf "Usage: psexclude procname1 ...\n" >&2
        return 1
        ;;
  (*)
        str=$(IFS='|'; printf '%s' "$*")
        wanted=( $(pgrep -fv -- "$str") )
        ;;
  esac
  ps --forest -p "${wanted[@]}"
}

배열을 지원하지 않는 셸의 경우 대안을 고려하세요.

#!/bin/sh

function psexclude {
  case $# in
  (0)
        printf "Usage: psexclude procname1 ...\n" >&2
        return 1
        ;;
  (*)
        str=$(IFS='|'; printf '%s' "$*")
        set -- $(pgrep -fv -- "$str")
        ;;
  esac
  ps --forest -p "$@"
}

관련 정보