GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kann ps unter Linux nur Nicht-Kernel-Prozesse anzeigen?

Das sollte (unter Linux) reichen:

ps --ppid 2 -p 2 --deselect

kthreadd (PID 2) hat PPID 0 (unter Linux 2.6+ ), sondern ps erlaubt nicht, nach PPID 0 zu filtern; daher diese Problemumgehung.


Eine Möglichkeit, Kernel-Prozesse zu erkennen, besteht darin, dass sie keinen Benutzerspeicher verwenden, also ist das vsz-Feld 0. Dies fängt auch Zombies (danke an Stephane Chazelas für diese Beobachtung), die basierend auf ihrem Status eliminiert werden können.

ps axl | awk '$7 != 0 && $10 !~ "Z"'

Um nur die PIDs aufzulisten:

ps -e -o pid= -o state= -o vsize= | awk '$2 != "Z" && $3 != 0 {print $1}'

In der Praxis fand ich folgende Redewendung ausreichend:

ps auxf | grep -v ]$

Es filtert Zeilen, die mit Klammern enden, was möglicherweise ist Ergebnis Auslassen unerwünschter Einträge, aber es ist sehr unwahrscheinlich. Dafür ist es recht einfach zu merken und relativ schnell zu tippen.

Einige Prozesse wie avahi-daemon fügen ihrem Prozessnamen Informationen in Klammern hinzu (der Hostname im Fall von avahi-daemon) und werden von diesem Befehl herausgefiltert.


Linux
  1. Linux – Init-Prozess:Urahn aller Prozesse?

  2. Linux – Sind verschiedene Linux/Unix-Kernel austauschbar?

  3. Linux-ps-Befehl

  4. Linux-ls-Befehl

  5. Beschränken Sie den Top-Befehl, um nur die Top-X-Prozesse in der Befehlszeile anzuzeigen

Dmesg-Befehl unter Linux

Pgrep-Befehl unter Linux

Linux-Befehl slabtop – Informationen zum Kernel-Slab-Cache anzeigen

Linux-Kernel vs. Mac-Kernel

Zeigen Sie Linux-Kernel-Modulinformationen mit dem Modinfo-Befehl an

Prozesse unter Linux verstehen