pgrep で子プロセスの PID を調べる

子プロセスの PID を取得したい場合、人間が見るには pstree が便利だけど、

$ pstree -alp $$  
zsh,13840
  ├─pstree,14216 -alp 13840
  ├─zsh,13940
  │   └─sleep,14213 10
  └─zsh,13992
      └─sleep,14215 10

シェルスクリプトで子プロセスの PID を取得して何か自動処理したいときには pgrep が便利そう。

  • P: 親プロセスの PID を指定
  • d: デリミタを指定
$ pgrep -d: -P $$ 
13940:13992