カーネルスレッドを隠す方法を知っています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です。