ps:カーネルスレッドではなく、ルートが所有するプロセスのみが表示されます。

ps:カーネルスレッドではなく、ルートが所有するプロセスのみが表示されます。

カーネルスレッドを隠す方法を知っていますps

/bin/ps --pid 2 --ppid 2 --deselect -o user:10,pid,stat,pcpu,pmem,tty,start_time,cmd

ルートが所有するプロセスのみを表示する方法を知っています。

/bin/ps -U root -o user:10,pid,stat,pcpu,pmem,tty,start_time,cmd

しかし、カーネルスレッドを除いて、ルートが所有するプロセスのみを表示するにはどうすればよいですか?

上記の2つのコマンドを組み合わせると動作しません。

/bin/ps --pid 2 --ppid 2 --deselect -U root -o user:10,pid,stat,pcpu,pmem,tty,start_time,cmd

答え1

以下を使用していつでも手動で選択できますawk

ps -o user:10,pid,stat,pcpu,pmem,tty,start_time,cmd -p $(
  ps -Ao pid= -o sid= -o uid= | awk '$2 && ! $3 {print $1}'
)

ここでセッションIDが検証され、カーネルスレッドの場合、セッションIDは0です。

関連情報