Die Überwachung und Steuerung von Prozessen ist eine der Hauptaufgaben aller Linux-Systemadministratoren. Ein Administrator kann einen Prozess beenden („killen“), neu starten und ihm sogar eine andere Priorität zuordnen. Um die Tabelle mit den derzeit laufenden Prozessen anzusehen, verwendet man üblicherweise die Standard- Linux-Befehle ps und top. Hier ein paar Hinweise, wie diese und andere Befehle im Prozessmanagement eines Linux-Systems eingesetzt werden können.
Prozessüberwachung mit ps
Eines der Standard-Tools zur Überwachung von Linux-Prozessen ist ps, das Kürzel von Prozessstatus. Dieser Befehl gibt Informationen über laufende Programme zurück. Diese Informationen können zum Beispiel der Benutzername, unter dem das Programm läuft, die Prozessorbelastung und die Zeit, die das Programm läuft, sein. Diese Daten können sehr nützlich sein, wenn man ein Programm manuell beenden will oder ermitteln, welches Programm das System ausbremst.
Wenn man den Befehl ps für sich alleine benutzt, werden nur die Prozesse aufgelistet, die auf dem aktuellen Terminal laufen. Hier ein Beispiel für eine Ausgabe ps von einer entfernten Shell aus:
$ ps
PID TTY TIME CMD
4684 pts/14 00:00:00 bash
27107 pts/14 00:00:00 ps
Zur Zeit sind diesem Benutzer/Terminal nur die Bash-Shell und der ps-Befehl selber zugeordnet. Für beide kann man die PID (Process ID) und die TTY, TIME und CMD sehen. TTY zeigt an, auf welchem Terminal der Prozess läuft, TIME gibt die vom Prozess verwendete CPU-Zeit an und CMD ist die Bezeichnung des Befehls, mit dem der Prozess gestartet wurde.
Wie man sieht, werden mit dem Standard-Befehl ps wirklich nur die grundlegenden Angaben aufgelistet. Um mehr Detailinformationen zu den Prozesse zu erhalten, die auf einem Linux-System ablaufen, müssen der Befehlszeile einige Argumente hinzugefügt werden.
Wenn man ps die üblichen aux-Argumenten übergibt, werden die Prozesse angezeigt, die von anderen Benutzern (a) gestartet wurden, sowie Prozesse ohne Terminal oder auf einem anderen Terminal (x), außerdem der Benutzer, der den Prozess gestartet hat, und die Anfangszeit (u).
Listing A enthält ein Beispiel, wie die Ausgabe nach dem Befehl ps aux aussehen kann.
Das sind jetzt schon wesentlich mehr Informationen. Es wurden die Felder USER, %CPU, %MEM, VSZ, RSS, STAT und START hinzugefügt. Hier die Erläuterungen, was all diese Angaben bedeuten.
Erstens kann man sämtliche Prozesse sehen und nicht nur die, die auf dem eigenen Terminal ablaufen. Im Feld USER wird angegeben, welcher Benutzer den Befehl initiiert hat. Viele Prozesse beginnen zum Zeitpunkt des Systemstarts und häufig werden auch Root- und einige System-Accounts beim USER aufgelistet. Andere Prozesse hingegen werden natürlich von Einzelpersonen gestartet. Schon allein diese Informationen können helfen ein Problem einzuengen. Beispielsweise beginnt ein Benutzer ein Skript, das eine Menge der I/O-Kapazität eines Produktionsservers beansprucht. Sofort feststellen zu können, wessen Programm dies ist, kann die Lösung des Problems beschleunigen.
Die Felder %CPU, %MEM, VSZ und RSS haben mit den Systemressourcen zu tun. Zunächst kann man sehen, welchen prozentualen CPU-Anteil der Prozess derzeit nutzt. Diese Information wird in Echtzeit angezeigt, weshalb Spitzen mit ps nur schwer entdeckt werden können. Manchmal muss man den Befehl ps ziemlich häufig laufen lassen um auf diese Weise den schuldigen Prozess herauszufinden.
Über drei Millionen Angriffsversuche unter Deckmantel von Minecraft / YouTube-Star Mr. Beast als prominenter Köder
Die Prognose für die Anfahrt bezieht das Verkehrsaufkommen, die Stellplatzverfügbarkeit sowie die Lenk- und Ruhezeiten…
Unternehmen können mit Casebase Portfolio an Daten- und KI-Anwendungsfällen organisieren.
Smart-TV oder Saugroboter: Nutzer schützen ihre smarten Heimgeräte zu wenig, zeigt eine repräsentative BSI-Umfrage.
Im Benchmark erreicht der neue Core Ultra 200V eine Laufzeit von 14 Stunden. Intel tritt…
Jeder dritte hält sich damit für unsichtbar. Wie widersprüchlich unser Datenschutzverhalten oft ist, zeigt eine…