Ini harus dilakukan (di Linux):
ps --ppid 2 -p 2 --deselect
kthreadd
(PID 2) memiliki PPID 0 (di Linux 2.6+ ) tetapi ps
tidak memungkinkan untuk memfilter PPID 0; jadi solusi ini.
Salah satu cara untuk mengenali proses kernel adalah mereka tidak menggunakan memori pengguna apa pun, jadi bidang vsz adalah 0. Ini juga menangkap zombi (terima kasih kepada Stephane Chazelas atas pengamatan ini), yang dapat dihilangkan berdasarkan statusnya.
ps axl | awk '$7 != 0 && $10 !~ "Z"'
Untuk mencantumkan PID saja:
ps -e -o pid= -o state= -o vsize= | awk '$2 != "Z" && $3 != 0 {print $1}'
Dalam praktiknya saya menemukan idiom berikut cukup:
ps auxf | grep -v ]$
Ini memfilter baris yang diakhiri dengan tanda kurung, yang mungkin hasil menghilangkan entri yang tidak diinginkan tapi itu sangat tidak mungkin. Sebagai gantinya, ini cukup mudah diingat dan relatif cepat untuk diketik.
Beberapa proses seperti avahi-daemon menambahkan informasi nama prosesnya dalam tanda kurung (nama host dalam kasus avahi-daemon) dan akan disaring oleh perintah ini.