私はたくさん使っps ef
てps rf
います。
の出力例を次に示しますps rf
。
PID TTY STAT TIME COMMAND
3476 pts/0 S 0:00 su ...
3477 pts/0 S 0:02 \_ bash
8062 pts/0 T 1:16 \_ emacs -nw ...
15733 pts/0 R+ 0:00 \_ ps xf
15237 ? S 0:00 uwsgi ...
15293 ? S 0:00 \_ uwsgi ...
15294 ? S 0:00 \_ uwsgi ...
そして今日、スクリプトで uwsgi のマスター プロセスのみを取得する必要がありました (したがって、15237 のみが必要で、15293 や 15294 は必要ありません)。
今日の時点で、いくつか試してみましps rf | grep -v ' \\_ '
たが...もっときれいな方法が欲しいです。
また、unix.com のフォーラムから別の解決策を見つけました。
ps xf | sed '1d' | while read pid tty stat time command ; do [ -n "$(echo $command | egrep '^uwsgi')" ] && echo $pid ; done
しかし、まだ多くのパイプと醜いトリックがあります。
ps
それを達成するためのオプションやよりクリーンなトリック(おそらくawkを使用)は本当にありませんか?