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

Entrümpeln des Prozessmanagements mit ps oder systemd

Eine meiner unbeliebtesten Aktivitäten als Support-Ingenieur war der Versuch, den Trümmerhaufen, der ps ist, zu sichten Befehl. Unweigerlich würde ein Java-Prozess fehlschlagen und an einem Port stecken bleiben, den ich öffnen musste, um einen Dienst neu zu starten. Der Dienst würde als aktiv angezeigt , aber es gab keine Funktion. Diese Situation war für Junior-Techniker verwirrend und ich wurde viele, viele Male gebeten, sie zu korrigieren, indem ich den festgefahrenen Prozess fand und beendete. Es kann auch vorkommen, dass Sie sehen müssen, ob ein bestimmter Prozess ausgeführt wird, oder ob ein Prozess untergeordnete Prozesse hervorgebracht hat. In diesen Szenarien ist das Verständnis von Kontrollgruppen enorm hilfreich. Kontrollgruppen organisieren auf einer grundlegenden Ebene Prozesse basierend auf dem übergeordneten Element und organisieren dann Prozesse in einer Hierarchie.

Hier sehen wir uns zwei Möglichkeiten zur Verbesserung des Standard-ps an Befehl, den die meisten Leute verwenden. Ich kenne viele Leute, die ps paaren mit grep , und wie Pecan Pie und Noah's Mill unterstütze ich diese Praxis voll und ganz. Ich ermutige Sie auch, sich die folgenden beiden Methoden anzusehen, da sie das Verständnis von Prozesshierarchien etwas erleichtern können.

Methode eins

Die erste Methode ist ein Standard ps Befehl mit aktiviertem Prozessbaum. Wenn Sie diesen Befehl ausführen: 

[root@fed31 ~]# ps xawf -eo pid,user,cgroup,args

die folgende Ausgabe könnte das Ergebnis sein:

Diese Ausgabe wurde gekürzt, da sie sehr ausführlich ist. Mit diesem Befehl erhalten Sie jedoch eine große Menge an Informationen. Von links nach rechts haben wir PID, USER, CGROUP und COMMAND.

Ich finde, dass diese Ausgabe eine großartige Möglichkeit ist, genau zu sehen, welcher Prozess zu welchem ​​übergeordneten Job gehört. Es ist auch in einem ziemlich benutzerfreundlichen Format. Der Befehl selbst kann eine Menge sein, die regelmäßig eingegeben werden muss, daher empfehle ich, einen Shell-Alias ​​einzurichten. Weitere Informationen zum Erstellen eines Alias ​​finden Sie in meinem Artikel zu diesem Thema hier. Im Moment wäre so etwas angemessen: 

alias pscgroup='ps xawf -eo pid,user,cgroup,args'

Methode zwei

Die nächste Option, die wir uns ansehen werden, ist ein systemd Nützlichkeit. Diese Methode ist meiner bescheidenen Meinung nach ein noch besserer Weg, um zu sehen, welcher Job zu welchem ​​übergeordneten Prozess oder Eigentümer gehört. Wenn Sie Folgendes eingeben: 

[root@fed31 ~]# systemd-cgls

das Ergebnis könnte so aussehen:

Auch hier wurde der Screenshot aufgrund der Länge der Ausgabe gekürzt. In dieser Version können Sie leichter erkennen, welcher Prozess zu welchem ​​Benutzer gehört, und jeder Prozess zeigt seine untergeordneten Prozesse als Teilmengen von Informationen an. Diese Methode ist eine super einfache Möglichkeit, die Organisation von Prozessen zu sehen und schnell die Eigentümerschaft zu finden.

Diese beiden Methoden der Betrachtung von Prozessen halfen mir zu verstehen, was was besitzt. Hoffentlich finden Sie diese auch hilfreich!

[Möchten Sie Red Hat Enterprise Linux ausprobieren? Jetzt kostenlos herunterladen.]


Linux
  1. So überprüfen Sie die Speichernutzung des Prozesses mit dem Linux-pmap-Befehl

  2. Nohup-Befehl mit Beispielen

  3. JQ-Befehl in Linux mit Beispielen

  4. Wie finde ich den Prozess mit maximalen Dateideskriptoren?

  5. Warum einen Linux-Shell-Befehl mit '&' ausführen?

15 Linux-PS-Befehl mit Beispielen

Killall-Befehl in Linux mit Beispielen

Wait-Befehl in Linux anhand von Beispielen erklärt

Linux-Prozessverwaltung mit htop verbessert

Verwaltung von gezippten oder komprimierten Ordnern mit Linux Terminal

Verlaufsbefehl mit Beispielen