与えられた親/子プロセスに従って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 "$@"
}

関連情報