Auf dieser Seite wird erläutert, wie Sie Ausführen von Prozessen auf Ihrem System mit Webmin verwalten.
Einführung in Prozesse
Jedes Programm, jeder Prozess oder Befehl, der auf einem Linux-System ausgeführt wird, ist ein Prozess. Zu jeder Zeit werden Dutzende von Prozessen auf Ihrem System ausgeführt, einige für Programme, mit denen Sie grafisch interagieren, einige für Befehle, die Sie an einer Shell-Eingabeaufforderung gestartet haben, einige für Server, die im Hintergrund ausgeführt werden, und einige, die Systemaufgaben ausführen. Jedes Mal, wenn Sie an der Shell-Eingabeaufforderung einen Befehl wie ls oder vi eingeben, wird ein neuer Prozess erstellt, der beendet wird, sobald seine Aufgabe erledigt ist.
Jeder Prozess wird durch eine eindeutige ID identifiziert, die als PID oder Prozess-ID bezeichnet wird. Jeder gehört einem einzelnen Benutzer und ist Mitglied mehrerer Gruppen, die die Berechtigungen des Prozesses festlegen. Und jeder hat eine Priorität (auch als „Nice Level“ bezeichnet), die steuert, wie viel CPU-Zeit der Prozess auf einem ausgelasteten System verbrauchen kann. Fast jeder Prozess hat einen übergeordneten Prozess. Dies ist der Prozess, der ihn gestartet hat und von dem er Eigentümer, Priorität und andere Einstellungen erbt.
Ein Prozess wird ausgeführt, bis er beendet wird oder bis er durch ein Signal eines anderen Prozesses beendet wird.
Das Modul „Laufende Prozesse“
Mit diesem Modul können Sie Prozesse auf Ihrem System anzeigen, beenden, neu priorisieren und ausführen. Wenn Sie es zum ersten Mal aus der Kategorie System eingeben, wird auf der Hauptseite ein Prozessbaum angezeigt, wie unten gezeigt.
Das Modul bietet verschiedene Möglichkeiten, alle Prozesse auf Ihrem System anzuzeigen. Diese können über die Links Anzeigen oben auf der Hauptseite ausgewählt werden. Dies sind:
PID In diesem Anzeigemodus wird jeder Prozess unter dem übergeordneten Prozess eingerückt angezeigt und bildet einen Baum aller auf Ihrem System ausgeführten Prozesse. Am oberen Rand des Baums befindet sich der Befehl init, der beim Booten vom Kernel gestartet wird und daher kein übergeordnetes Element hat. Benutzer In diesem Modus werden Prozesse nach ihrem Eigentümer gruppiert. Auf Systemen mit vielen Benutzern kann es hilfreich sein, auf einen Blick zu sehen, was jeder Benutzer ausführt. Speicher In diesem Modus werden Prozesse nach der Menge an Speicher geordnet, die sie verbrauchen, wobei diejenigen, die den meisten Speicher verwenden, oben auf der Seite angezeigt werden. Die Speichernutzung eines Prozesses gibt nicht immer an, wie viel Speicher tatsächlich verwendet wird, da Prozesse häufig den Speicher miteinander teilen. Darüber hinaus wird die gesamte und freie Menge an realem und virtuellem Speicher auf Ihrem System über der Prozessliste angezeigt. CPU In diesem Anzeigemodus werden Prozesse nach ihrer aktuellen CPU-Auslastung sortiert, wobei der schwerste Benutzer zuerst angezeigt wird. Manchmal wird der Webmin-Befehl, der die Seite generiert, oben in der Liste angezeigt, kann jedoch ignoriert werden. Die Durchschnittswerte der Systemlast werden oben auf der Seite angezeigt, um einen Eindruck davon zu bekommen, wie beschäftigt das System in den letzten 1,5 und 10 Minuten war. Ein Durchschnitt von 0 bedeutet, dass überhaupt keine Aktivität stattfindet, 1 bedeutet, dass die CPU voll ausgelastet ist, und alles über 1 bedeutet, dass mehr Prozesse ausgeführt werden sollen, als das System CPU-Zeit hat.
Mit den Optionen Suchen und Ausführen können Sie nach Prozessen suchen und neue ausführen. Weitere Informationen finden Sie in den folgenden Abschnitten.
Anzeigen, Beenden oder erneutes Priorisieren eines Prozesses
Sie können die vollständigen Details eines laufenden Prozesses anzeigen, indem Sie in einer der Anzeigen auf der Hauptseite auf den Spalteneintrag Prozess-ID klicken . Hiermit gelangen Sie zur Prozessinformationsseite, die in diesem Screenshot angezeigt wird.
Auf der Seite werden alle verfügbaren Informationen zum Prozess angezeigt, einschließlich der vollständigen Befehlszeile, des übergeordneten Befehls und aller Unterprozesse. Sie können einfach zur Informationsseite des übergeordneten Elements wechseln, indem Sie auf dessen Befehl klicken, oder zur Seite in einem der Unterprozesse, indem Sie auf dessen Prozess-ID klicken. Eine Liste der Dateien, für die der Prozess geöffnet ist, und der Netzwerkverbindungen, die derzeit verwendet werden, kann durch Klicken auf die Schaltfläche Dateien und Verbindungen angezeigt werden.
Der Prozess kann mithilfe eines TERM-Signals gestoppt werden, indem Sie auf die Schaltfläche Prozess beenden klicken. Da dies von einigen Befehlen ignoriert werden kann, kann die Schaltfläche Kill Process verwendet werden, um ein KILL-Signal zu senden, wenn die Beendigung fehlschlägt. Wenn der Prozess nicht in einem Kernel-Systemaufruf hängen bleibt, ist das Beenden des Prozesses garantiert erfolgreich.
Andere Signale können gesendet werden, indem Sie den Signaltyp neben der Schaltfläche Signal senden auswählen, bevor Sie darauf drücken. Einige der nützlicheren Signale sind:
HUP Bei vielen Serverprozessen führt dieses Signal dazu, dass sie ihre Konfigurationsdateien erneut lesen. STOP Unterbricht den Vorgang, bis ein CONT-Signal empfangen wird. CONT Setzt einen Prozess fort, der durch ein STOP-Signal angehalten wurde.
Die Informationsseite kann auch verwendet werden, um die nette Ebene eines laufenden Prozesses zu ändern und ihm eine höhere oder niedrigere Priorität zu geben.Um eine Prozesspriorität zu ändern, wählen Sie eine neue Ebene aus der Liste * Schöne Ebene * aus und klicken Sie dann auf die Schaltfläche Ändern. Niedrigere Ebenen bedeuten höhere Prioritäten, sodass ein Prozess mit einer guten Stufe von 10 mehr CPU-Zeit als ein Prozess mit Stufe 5 benötigt.
Auf einem System mit mehreren Benutzern nehmen lang laufende Prozesse viel Zeit in Anspruch Die CPU-Zeit sollte höher eingestellt werden, damit Prozesse, die mit Benutzern interagieren, nicht verlangsamt werden. Alternativ können Sie einen Prozess auf Kosten anderer beschleunigen, indem Sie ihm eine niedrigere Stufe geben. Sie sollten vorsichtig sein, wenn Sie einen extrem niedrigen Pegel (z. B. 20) einstellen, da bei allen anderen Prozessen die CPU-Zeit knapp wird und das System nicht mehr reagiert.
Suchen nach Prozessen
Wenn auf Ihrem System eine große Anzahl von Prozessen ausgeführt wird und Sie einen oder mehrere Prozesse zum Beenden oder Anzeigen suchen möchten, wird die Suchfunktion des Moduls „Ausführender Prozess“ ausgeführt Gehen Sie folgendermaßen vor, um Prozesse zu finden:
- Klicken Sie auf der Hauptseite des Moduls auf den Link Suchanzeigemodus. Dadurch gelangen Sie zu einem Suchformular, wie im Screenshot gezeigt
- Das Formular zeigt verschiedene Kriterien zum Suchen von Prozessen an, von denen Sie eines auswählen können, indem Sie das Optionsfeld daneben aktivieren. Die Kriterien sind: Eigentümer von Prozessen, die dem Benutzer gehören, dessen Namen Sie als Nächstes eingeben Diese Option wird gefunden. # * Matching Findet Prozesse, deren Befehl oder Argumente den Text enthalten, den Sie neben dieser Option eingeben. Verwenden von mehr als Findet Prozesse mit mehr als dem angegebenen Prozentsatz der CPU-Zeit. Verwenden von Dateisystemprozessen, deren aktuelles Verzeichnis aktiviert ist Das ausgewählte Dateisystem oder der Zugriff auf eine Datei darauf wird gefunden. Nützlich, wenn Sie nicht können Ein Dateisystem kann nicht gemountet werden, da es ausgelastet ist. Verwenden von Dateien Findet Prozesse, bei denen die eingegebene Datei zum Lesen oder Schreiben geöffnet ist. Wenn Sie ein Verzeichnis eingeben, wird jeder Prozess gefunden, dessen aktuelles Verzeichnis es ist. Verwenden des Ports Sucht nach Prozessen, die den Netzwerkverkehr auf dem eingegebenen Port unter Verwendung des ausgewählten Protokolls senden, empfangen oder abhören. Nützlich, wenn Sie die Portnummer kennen, die ein Server abhört, und den Serverprozess suchen möchten. Adresse verwenden Findet Prozesse, bei denen eine Netzwerkverbindung zur eingegebenen Adresse besteht oder die diese Adresse abhören, wenn es sich um eine Schnittstelle in Ihrem System handelt.
- Um die Webmin-Suchprozesse aus den Ergebnissen herauszufiltern, wählen Sie die Option Suchprozesse im Ergebnis ignorieren. Dies kann bei der Suche nach CPU-Auslastung hilfreich sein, da die Webmin-Prozesse viel CPU-Zeit verbrauchen.
- Nachdem Sie die Suchkriterien ausgewählt haben, klicken Sie auf die Schaltfläche Suchen. Alle übereinstimmenden Prozesse werden unter dem Formular angezeigt.
- Wenn Sie zusätzliche Informationen zu einem Prozess anzeigen, seine Priorität ändern oder ihm allein ein Signal senden möchten, klicken Sie in den Ergebnissen auf seine Prozess-ID.
- Um alle übereinstimmenden Prozesse zu beenden, klicken Sie auf die Schaltfläche Prozesse beenden oder Prozesse beenden. Sie können jedes Signal auch an alle Prozesse senden, indem Sie es aus der Liste neben der Schaltfläche * Signal senden * auswählen. Es wird eine Seite angezeigt, auf der jede Prozess-ID aufgeführt ist und ob sie erfolgreich signalisiert oder beendet wurde.
Ausführen eines Prozesses
Mit dem Modul können auch einfache Befehle ausgeführt werden, entweder im Vordergrund, damit ihre Ausgabe angezeigt wird, oder im Hintergrund als Dämonen. Dies kann nützlich sein, wenn Sie nur einen Befehl ausführen möchten, ohne sich über Telnet oder SSH anmelden zu müssen (oder wenn eine Firewall eine Telnet- oder SSH-Anmeldung verhindert). Die folgenden Schritte sind:
- Klicken Sie auf der Hauptseite des Moduls neben den Optionen für den Anzeigemodus auf den Link Ausführen. Hiermit gelangen Sie zum Formular zum Starten eines neuen Prozesses.
- Geben Sie den Befehl, den Sie ausführen möchten, in das Feld * Befehl zum Ausführen * ein. Shell-Operatoren und Sonderzeichen wie ;, & lt, > und & & kann verwendet werden.
- Wenn die Ausführung des Befehls lange dauert, können Sie die Option „Ausführungsmodus“ auf „Im Hintergrund ausführen“ setzen, damit Webmin ihn automatisch in den Hintergrund stellt. Wenn Sie jedoch die Ausgabe des Befehls anzeigen möchten, lassen Sie die Option auf Warten, bis der Vorgang abgeschlossen ist.
- Geben Sie alle Eingaben, die Sie dem Befehl zuführen möchten, in das Feld * Eingabe in Befehl * ein.
- Klicken Sie auf die Schaltfläche Ausführen, um es auszuführen. Wenn die Option Bis zum Abschluss warten ausgewählt wurde, wird jede Ausgabe des Befehls angezeigt.
Befehl ausführen
Optionen für die Modulzugriffskontrolle
Standardmäßig kann jeder Webmin-Benutzer mit Zugriff auf dieses Modul alle laufenden Prozesse verwalten auf dem System, als wäre er als root angemeldet. Mit dem Modul Benutzer und Gruppen können Sie jedoch den Zugriff eines Benutzers einschränken, sodass er nur Prozesse eines bestimmten Unix-Benutzers beenden oder erneut ausführen kann.Es ist auch möglich, einen Benutzer auf den schreibgeschützten Modus zu beschränken, sodass er Prozesse nur sehen kann, indem er sie in keiner Weise ändert oder neue startet.
Lesen Sie zuerst Kapitel 52, um mehr über die Modulzugriffskontrolle und das Gewähren eines Benutzerzugriffs auf das Modul „Laufende Prozesse“ zu erfahren. Um den Zugriff eines Webmin-Benutzers auf dieses Modul zu bearbeiten, müssen Sie folgende Schritte ausführen:
- Klicken Sie im Modul Webmin-Benutzer neben dem Namen des Benutzers auf Ausführen von Prozessen oder Gruppe, die Sie einschränken möchten.
- Ändern Sie das Feld Kann die Modulkonfiguration bearbeiten? in Nein.
- Damit der Webmin-Benutzer nur auf die Prozesse zugreifen kann, die einem bestimmten Unix-Benutzer gehören, Geben Sie den Benutzernamen in das Feld * Prozesse als Benutzer verwalten * ein. Wenn die Unix- und Webmin-Benutzer denselben Namen haben, können Sie stattdessen Aktueller Webmin-Benutzer auswählen. Dies kann hilfreich sein, wenn Sie die Modulzugriffskontrolle für eine Gruppe einrichten, in der Sie jeweils möchten Mitglied, um nur seine eigenen Prozesse verwalten zu können.
- Um den Benutzer in den schreibgeschützten Modus zu versetzen, setzen Sie die Felder * Kann Prozesse beenden und neu starten? * und Befehle ausführen? * auf * Nein. Wenn Dies ist erledigt, es spielt keine Rolle, welchen Benutzernamen Sie in Schritt 7 eingeben, da keine Prozessverwaltung durchgeführt werden kann.
- Klicken Sie auf die Schaltfläche Speichern, um Ihre Änderungen zu aktivieren.
Um die Prozesse einzuschränken, die ein Webmin-Benutzer verwalten kann, wird der Modulcode einfach so geschaltet, dass er als der in Schritt 4 angegebene Unix-Benutzer ausgeführt wird. Da ein Unix-Benutzer keinen Prozess beenden oder neu priorisieren kann Wenn er einen solchen Benutzer wechselt, erzwingt das Betriebssystem automatisch die Prozesszugriffskontrolle für Webmin.
Andere Betriebssysteme
Da Prozesse auf allen Unix-Versionen mit fast vorhanden sind Mit identischen Attributen erscheint dieses Modul auf allen unterstützten Betriebssystemen fast genau gleich.
Beim Anzeigen detaillierter Informationen zu einem Prozess sind möglicherweise andere Informationen auf anderen Betriebssystemen verfügbar. Der Bereich der netten Levels kann auch unterschiedlich sein, aber niedrigere Level bedeuten immer noch eine höhere Priorität und umgekehrt.
Bei der Suche nach einem Prozess ist das Kriterium „Dateisystem verwenden“, „Datei verwenden“ oder „Port verwenden“ möglicherweise nicht verfügbar. Diese Optionen hängen von den Befehlen fuser und lsof ab, die nicht auf allen Systemen verfügbar sind oder standardmäßig auf diesen installiert sind.