名前と番号によるプロセスのフィルタリング

名前と番号によるプロセスのフィルタリング

プロセス名と良い番号だけが含まれているPID番号を見つけるスクリプトを書くのは難しいです。

ベストアンサー1

pgrepまず、最初の引数として提供された式に一致するすべてのプロセスのPIDを取得し、次にこれらのプロセスを繰り返して、2番目の引数に対応する良い値を持つプロセスを抽出するために使用されます。

find_pid_by_name_and_nice () {
    pgrep -- "${1:?missing process name}" |
    xargs -I {} ps -o pid= -o nice= -p {} |
    awk -v nice="${2?missing nice value}" '$NF == nice { print $1 }'
}

テスト:

$ find_pid_by_name_and_nice
find_pid_by_name_and_nice:1: 1: missing process name
find_pid_by_name_and_nice:3: 2: missing nice value
$ find_pid_by_name_and_nice netdata
find_pid_by_name_and_nice:3: 2: missing nice value
$ find_pid_by_name_and_nice netdata 19
258881
258937
$ find_pid_by_name_and_nice netdata 15

(出力なし)

おすすめ記事