Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erklärung des ps-Befehls

Detaillierte Erklärung des ps-Befehls

高洛峰
高洛峰Original
2016-12-29 14:33:031817Durchsuche

Name: ps
Nutzungsberechtigung: alle Benutzer
Nutzungsmethode: ps [Optionen] [--help]
Beschreibung: Anzeige der Dynamik der momentanen Reise (Prozess)
Parameter: ps Es gibt viele Parameter, hier listen wir nur einige häufig verwendete Parameter auf und stellen ihre Bedeutung kurz vor
-A Alle Prozesse auflisten
-w Durch die Anzeigeerweiterung können mehr Informationen angezeigt werden
-au Detailliertere Informationen anzeigen
-aux Zeigt alle Fahrten an, an denen andere Benutzer beteiligt sind

########################### ####### #######################

Gemeinsame Parameter:

-A Alle Prozesse anzeigen (entspricht -e) ( Dienstprogramm)
-a Alle Prozesse für ein Terminal anzeigen, außer Sitzungsleiter
-N Auswahl ignorieren.
-d zeigt alle Prozesse an, lässt jedoch alle Sitzungsleiter (Dienstprogramme) aus.
-x zeigt Prozesse an, die das Terminal nicht steuern, und zeigt die spezifischen Pfade jedes Befehls an. dx kann nicht zusammen verwendet werden. (Dienstprogramm)
-p pid Die Zeit, die der Prozess die CPU nutzt
-u uid oder Benutzername Wählen Sie eine gültige Benutzer-ID oder einen gültigen Benutzernamen
-g gid oder Gruppenname Alle Prozesse in der Gruppe anzeigen.
U Benutzername zeigt alle Prozesse unter diesem Benutzer an und zeigt den detaillierten Pfad jedes Befehls an. Beispiel: ps U zhang;(utility)
-f listet alle auf und wird normalerweise in Verbindung mit anderen Optionen verwendet. Zum Beispiel: ps -fa oder ps -fx und so weiter.
-l Langformat (mit Feldern wie F, wchan, C usw.)
-j Jobformat
-o Benutzerdefiniert Format.
v Anzeige im virtuellen Speicherformat
s Anzeige im Signalformat
-m Anzeige aller Threads
-H Anzeige der Prozessebene (kombiniert mit anderen Befehlen, z. B.: ps -Ha) (Dienstprogramm)
e zeigt die Umgebung nach dem Befehl an (z. B.: ps -d e; ps -a e) (Dienstprogramm)
h zeigt nicht die erste Zeile an

########## ## #############################################

Allgemeine Verwendung des ps-Befehls (praktisch zum Anzeigen von Systemprozessen)

1) ps a zeigt alle Programme unter dem aktuellen Terminal an, einschließlich der Programme anderer Benutzer.
2) ps -A zeigt alle Prozesse an.
3) Wenn ps c Programme auflistet, zeigen Sie den tatsächlichen Befehlsnamen jedes Programms an, ohne den Pfad, die Parameter oder die Identifizierung der residenten Dienste anzugeben.
4) ps -e Die Wirkung dieses Parameters ist dieselbe wie die Angabe des Parameters „A“.
5) Wenn ps e Programme auflistet, zeigen Sie die von jedem Programm verwendeten Umgebungsvariablen an.
6) ps f verwendet ASCII-Zeichen, um die Baumstruktur anzuzeigen und die Beziehung zwischen Programmen auszudrücken.
7) ps -H zeigt eine Baumstruktur an, die die Beziehung zwischen Programmen angibt.
8) ps -N zeigt alle Programme an, mit Ausnahme der Programme unter dem Terminal, die den ps-Befehl ausführen.
9) ps s verwendet das Programmsignalformat, um den Programmstatus anzuzeigen.
10) ps S berücksichtigt unterbrochene Unterprogramminformationen beim Auflisten von Programmen.
11) ps -t Geben Sie die Terminalnummer an und listen Sie den Status der zum Terminal gehörenden Programme auf.
12) ps u Zeigt den Programmstatus im benutzerorientierten Format an.
13) ps x Zeigt alle Programme an, nicht nach Terminal unterschieden.
Die am häufigsten verwendete Methode ist ps -aux. Verwenden Sie dann ein Pipe-Symbol, um grep anzuweisen, einen bestimmten Prozess zu finden, und bearbeiten Sie dann den spezifischen Prozess.

######################################### ##############

Führen Sie ps aux aus, um die folgenden Informationen zu erhalten:

root:# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
smmsp 3521 0,0 0,7 6556 1616 ? Ss 20:40 0:00 sendmail: Queue runner@01:00 :00 f
root 3532 0,0 0,2 2428 452 ? Ss 20:40 0 : 00 gpm -m /dev/input/mice -t imps2
htt 3563 0.0 0.0 2956 196 ? Ss 20:41 0:00 /usr/sbin/htt -retryonerror 0
h tt 3564 0.0 1.7 29460 3704 Sl 20:41 0:00 htt_server -nodaemon
root 3574 0,0 0,4 5236 992 ? Ss 20:41 0:00 crond
xfs 3 617 0,0 1,3 13572 2804 ? priv - Daemon
root 3627 0,0 0,2 3448 552 ? SNs 20:41 0:00 anacron -s
root 3636 0,0 0,1 2304 420 ? Ss 20:41 0:00 /usr/sbin/atd
dbus 3655 0,0 0,5 1384 0 1084 ? Ssl 20:41 0:00 dbus-daemon-1 --system


Kopfzeile:

BENUTZER Benutzername
UID Benutzer-ID (Benutzer-ID)
PID-Prozess ID
PPID Parent Process ID
SID Session ID
%CPU CPU-Auslastung des Prozesses
%MEM Speicherauslastung des Prozesses Rate
VSZ Die Größe des vom Prozess verwendeten virtuellen Speichers ( Virtuelle Größe)
RSS Die Größe des vom Prozess verwendeten residenten Satzes oder die Größe des tatsächlichen Speichers, Kbytes Bytes.
TTY-Terminal (tty), das dem Prozess zugeordnet ist
STAT Status des Prozesses: Der Prozessstatus wird durch Zeichen dargestellt (Statuscode von STAT)
R Ausführbar (in der Ausführungswarteschlange) Läuft oder befindet sich in der Ausführungswarteschlange Warten.
S Schlafen Schlafen, blockiert, darauf wartend, dass sich ein bestimmter Zustand bildet oder ein Signal empfängt.
I Idle Idle
Z Zombie (ein nicht mehr existierender Prozess) Der Prozess wurde beendet, aber der Prozessdeskriptor existiert, bis der übergeordnete Prozess den Systemaufruf wait4() aufruft und freigegeben wird.
D Unterbrechungsfreier Ruhezustand (normalerweise IO) wacht nicht auf und kann nicht ausgeführt werden, wenn ein Signal empfangen wird. Der Prozess muss warten, bis eine Unterbrechung auftritt.
T Terminate Terminate Der Prozess stoppt nach dem Empfang von SIGSTOP-, SIGSTP-, SIGTIN- und SIGTOU-Signalen.
P Warten auf Swap-Seiten
W Hat keine residenten Seiten. Es sind nicht genügend Speicherseiten zum Zuweisen vorhanden.
Body-Paging-Zuweisung und -Verkleinerung
s Prozessführer im Speicher (es gibt untergeordnete Prozesse darunter);
l Multiprozess (mit CLONE_THREAD, ähnlich wie NPTL-Pthreads)
+ Prozessgruppe in der Hintergrund
START-Prozess Startzeit und -datum
TIME Gesamte CPU-Zeit, die der Prozess verbraucht
BEFEHL Befehlszeilenbefehl wird ausgeführt
NI-Priorität (Gut)
PRI Prozessprioritätsnummer (Priorität)
WCHAN Der Prozess wird ausgeführt. Der Kernel-Funktionsname für den Ruhezustand wird aus der Datei /root/system.map abgerufen.
FLAGS Numerische Identifikation, die dem Prozess zugeordnet ist

################################ # #######################

Beispiel:
Uid, pid, stat, pri des aktuellen Systemprozesses anzeigen, Nach UID-Nummer sortieren.
ps -eo pid,stat,pri,uid –sort uid

Benutzer, PID, Statistik, RSS, Argumente des aktuellen Systemprozesses anzeigen, nach RSS sortieren.
ps -eo user,pid,stat,rss,args –sort rss

########################### # ##########################

ps bietet uns einen einmaligen Einblick in den Prozess Die angezeigten Ergebnisse sind nicht dynamisch und kontinuierlich. Wenn Sie die Prozesszeit überwachen möchten, sollten Sie das Top-Tool verwenden.


1. Parameterbeschreibung von ps:

ps bietet viele Optionsparameter, die folgenden werden häufig verwendet:

l lange Formatausgabe; u zeigt Prozesse in der Reihenfolge des Benutzernamens und der Startzeit an;
j zeigt Prozesse im Aufgabenformat an;

a zeigt alle Prozesse für alle Benutzer an (einschließlich anderer Benutzer). ;
x zeigt Prozesse an, ohne das Terminal zu steuern;
ww vermeidet das Abschneiden detaillierter Parameter;

Unsere häufig verwendete Option ist die Kombination von aux oder lax; Anwendung des Parameters f.


Erklärung der ps aux- oder lax-Ausgabe:

PID-Prozess-ID;
% CPU-Prozentsatz von Vom Prozess belegte CPU;
%MEM-Speicheranteil
NI ist der NICE-Wert des Prozesses.
VSZ ist die virtuelle Größe des Prozesses.
TTY ist das Terminal ID;
STAT ist der Prozessstatus (es gibt die folgenden)
D befindet sich in einem Ruhezustand, der nicht unterbrochen werden kann (normalerweise läuft IO-Prozesse und kann in die Warteschlange gestellt werden); >S befindet sich in einem Ruhezustand;
T ist gestoppt oder die Verfolgung wird gestoppt (ungültig seit Kernel 2.6);
Z Zombie-Prozess;

< hochpriorer Prozess
N Prozess mit niedrigerer Priorität
L Einige Seiten sind im Speicher gesperrt (es gibt untergeordnete Prozesse); Multiprozess (mit CLONE_THREAD, ähnlich wie NPTL-Pthreads);
WCHAN wartet auf Prozessressourcen;
TIME-Prozessverbrauch; time;
COMMAND Der Name und die Parameter des Befehls;


3 verbunden sein mit |. Pipe und mehr für Paging-Check.
[root@localhost ~]# ps -aux > ps001.txt
Geben Sie die Ergebnisse in den ps001.txt-Text aus und speichern Sie ihn.
[root@localhost ~]# mehr ps001.txt
Hier werden alle Prozesse angezeigt und in die Datei ps001.txt ausgegeben und dann im Blättern durch mehr angezeigt.


4. Kill beendet (tötet) den Prozess. Es gibt mehr als ein Dutzend Möglichkeiten, den Prozess zu steuern:
[root@localhost ~]#kill – STOP [pid ]
Das Senden von SIGSTOP (17,19,23) stoppt einen Prozess, ohne ihn zu beenden.
[root@localhost ~]#kill -CONT [pid]
Senden Sie SIGCONT (19,18,25), um einen gestoppten Prozess neu zu starten.
[root@localhost ~]#kill -KILL [pid]
Senden Sie SIGKILL (9), um das sofortige Stoppen des Prozesses zu erzwingen und keine Bereinigungsvorgänge durchzuführen.
[root@localhost ~]#kill -9 -1
Töte alle Prozesse, die du besitzt.
SIGKILL- und SIGSTOP-Signale können nicht abgefangen, blockiert oder ignoriert werden, andere Signale jedoch schon. Das ist also Ihre ultimative Waffe.

######################################### ###############

Verwenden Sie den ps-Befehl, um das ausgeführte Programm dem Administrator zu melden:

Manchmal kümmert sich der Systemadministrator nur um den aktuellen Stand system Welche Programme auf dem Computer ausgeführt werden, Sie möchten jedoch nicht wissen, welche Prozesse ausgeführt werden. Weil eine Anwendung möglicherweise mehrere Prozesse starten muss. Unter den gleichen Umständen ist die Anzahl der Prozesse viel größer als die der Programme. Um dies aus lesender Sicht tun zu können, muss der Administrator die spezifischen Programme kennen, die auf dem System ausgeführt werden. Um diese Anforderung zu erfüllen, müssen Sie den Befehl ps verwenden.

1. Die Bedeutung der vom ps-Befehl angezeigten Ergebnisse.

Wenn Sie die im System ausgeführten Programme anzeigen müssen, ist der Befehl ps zwar nicht der einzige Befehl, aber definitiv der am häufigsten verwendete Befehl. Wie in der folgenden Abbildung dargestellt, handelt es sich um das Ergebnis, das nach der Ausführung des Befehls ps angezeigt wird.

Geben Sie den Befehl ps in der Befehlszeile ein, um alle Anwendungen anzuzeigen, die derzeit auf dem System ausgeführt werden. Wie in der Abbildung oben gezeigt, bestehen die angezeigten Ergebnisse bei Eingabe des Befehls ps hauptsächlich aus vier Teilen. Die erste ist die PID, also die ID-Nummer des Programms. Das Betriebssystem verwendet diese ID-Nummer, um die Anwendung eindeutig zu identifizieren, anstatt sie mithilfe von Befehlen zu identifizieren. Wenn Sie das Schließen einer Anwendung erzwingen müssen, müssen Sie diese PID-Nummer verwenden. Gefolgt von TTY gibt dieses Feld den vom Benutzer verwendeten Terminalcode an. Pts gibt an, dass sich der Benutzer remote anmeldet. Der dritte Parameter TIME stellt die von diesem Programm verbrauchte CPU-Zeit dar. Beachten Sie, dass diese Zeit nicht die Zeit ist, zu der das Programm ausgeführt wird. Der letzte Parameter CMD repräsentiert den Namen des Programms.

2. Lassen Sie das System detaillierte Informationen melden.

Wenn bei Verwendung des ps-Befehls keine Optionen verwendet werden, sind die angezeigten Informationen sehr begrenzt und oft werden nur die vom aktuellen Benutzer ausgeführten Programme angezeigt. Wenn der Systemadministrator detailliertere Informationen zur Ausführung einer Anwendung benötigt, beispielsweise den Speicher und die CPU-Auslastung der Anwendung, müssen einige Optionen hinzugefügt werden. Wenn der Systemadministrator die von anderen Benutzern ausgeführten Anwendungen anzeigen muss, muss er nach diesem Befehl die optionale Option -al verwenden. In diesem Fall listet das System alle Programme auf, die von allen Benutzern auf dem System ausgeführt werden. Wenn Sie die CPU- und Speichernutzung eines bestimmten Programms wissen möchten, müssen Sie nach diesem Befehl den Parameter -l hinzufügen, anstatt nur seine CPU-Nutzungszeit anzuzeigen. Das heißt, das System kann es mit dem Befehl ps -l anzeigen der Anwendung Detaillierte Informationen zur Ausführung des Programms. Wenn Sie sich für die Bedeutung der einzelnen Felder oben interessieren, können Sie die entsprechende Hilfe lesen. Im Allgemeinen kümmert sich der Systemadministrator nur um die PID-Nummer des Programms, die Speicher- und CPU-Auslastung, den Namen des Befehls, das vom Benutzer verwendete Terminal usw. Andere Informationen sind für Systemadministratoren von geringerem Wert.

3. Überprüfen Sie die im Hintergrund laufenden Programme.

Standardmäßig zeigt der Befehl ps nur Programme an, die im Vordergrund ausgeführt werden, nicht jedoch Programme, die im Hintergrund ausgeführt werden. Allerdings laufen nicht alle Programme im Vordergrund. Unter normalen Umständen ist die Anzahl der Programme, die versteckt im Hintergrund ausgeführt werden, viel größer als die Anzahl der Programme, die im Vordergrund ausgeführt werden. Beispielsweise laufen viele systemeigene Programme, die beim Start des Betriebssystems gestartet werden, im Hintergrund. Und manchmal werden Systemprobleme oft durch Hintergrundprogramme verursacht. Im Hintergrund werden gängige Programme wie Trojaner ausgeführt. Aus diesem Grund sind Systemadministratoren relativ mehr daran interessiert zu wissen, welche Programme im Hintergrund laufen.

Wenn Sie die im Hintergrund laufenden Programme überprüfen möchten, ist es etwas komplizierter. Denn in verschiedenen Versionen von Linux-Betriebssystemen sind die Optionen zur Anzeige von Hintergrundprozessen unterschiedlich. Im Red Hat Linux-Betriebssystem liegt es beispielsweise tatsächlich in Form von Parametern und nicht in Form von Optionen vor. Das heißt, Sie können den Befehl ps aux verwenden, um alle Anwendungen (einschließlich Vordergrund und Hintergrund) anzuzeigen. Der Hauptunterschied zwischen Parametern und Optionen besteht darin, dass kein --Symbol davor steht. Wenn dieses Symbol vorhanden ist, bedeutet dies, dass es optional ist. Und wenn es nicht enthalten ist, bedeutet dies, dass es sich um einen Parameter handelt. Auf dieses Symbol kann grundsätzlich verzichtet werden. Wenn der Befehl nicht an der Stelle geschrieben wird, an der er geschrieben werden soll, oder wenn er an einer Stelle hinzugefügt wird, an der er nicht benötigt wird, zeigt das System eine Fehlermeldung an, dass der Befehl nicht gefunden werden kann. In anderen Linux-Systemversionen wird dieser Aux-Parameter möglicherweise nicht erkannt. Beispielsweise muss in einigen Linux-Betriebssystemversionen die Option -a verwendet werden, um diese Aufgabe abzuschließen. Aufgrund der Unterschiede zwischen den Systemversionen bereitet es Systemadministratoren große Probleme. Glücklicherweise gibt es für jede Betriebssystemversion eine Online-Hilfe. Wenn der Systemadministrator eine neue Version des Betriebssystems verwendet und nicht weiß, mit welcher Option er alle Prozesse anzeigen soll, kann er mit Befehlen wie ps --heip die Systemhilfe anzeigen. Der einzige Wermutstropfen ist jedoch, dass die Online-Hilfe des Systems vollständig auf Englisch ist, was ein großer Test für die Englischkenntnisse des Systemadministrators ist. Wenn Sie jedoch Linux-Systemadministrator werden möchten, müssen Sie dennoch über einige Englischkenntnisse verfügen. Denn die neueste Linux-Technologie verfügt grundsätzlich zuerst über eine englische Dokumentation. Tatsächlich müssen Sie die fortgeschrittensten Betriebssystembücher beherrschen. Die meisten Computerbücher sind auf Englisch.

4. Sortieren Sie die Programmliste.

Wenn viele Anwendungen ausgeführt werden, muss der Systemadministrator die Anwendungen sortieren. Die Sortierfunktion des Ps-Befehls ist relativ leistungsfähig. Hauptsächlich, weil dieser Befehl einen Parameter --sort hat (beachten Sie, dass sich vor diesem Parameter zwei kleine horizontale Balkensymbole befinden, Leser sollten nicht glauben, dass der Autor einen Fehler gemacht hat). Fügen Sie nach diesem Parameter das vom Systemadministrator gewünschte Sortierfeld hinzu, und Sie können sortieren. Dieser Befehl ps –A --sort cmd bedeutet beispielsweise, alle Anwendungen im System anzuzeigen und sie entsprechend den Programmbefehlen zu sortieren. Ein weiteres Problem bei den Parametern des Linux-Betriebssystems besteht darin, dass unterschiedliche Groß- und Kleinschreibung von Parametern häufig unterschiedliche Bedeutungen haben. Wenn im obigen Befehl beispielsweise der Großbuchstabe A durch den Kleinbuchstaben a ersetzt wird, ist das Ergebnis völlig anders. Der Großbuchstabe A bedeutet alle Anwendungen, während der Kleinbuchstabe a „alle mit TTY außer Sitzungsleitern“ bedeutet. Zwischen beiden besteht ein wesentlicher Unterschied. Dieser Unterschied kann zum Filtern von Anwendungen genutzt werden, die von unterschiedlichen Terminal-Anmeldekonten ausgeführt werden.

Im ps-Befehl tritt bei vielen Parametern diese Situation auf. Führen Sie ps --help aus, um alle Parameter dieses Befehls anzuzeigen. Sie können sehen, dass es viele ähnliche Situationen gibt, in denen unterschiedliche Groß- und Kleinschreibung unterschiedliche Bedeutungen bedeutet. Zum Beispiel das Großbuchstabe O und das Kleinbuchstabe o, das Großbuchstabe U und das Kleinbuchstabe u usw. Diese Unterschiede erschweren Systemadministratoren die Wartung des Betriebssystems. Für Systemadministratoren ist es oft unmöglich, so viele Parameter und die Unterschiede zwischen Groß- und Kleinschreibung von Parametern zu verstehen. Neben der Verwendung häufiger verwendeter Parameter zur Erhöhung des Werteindrucks müssen Systemadministratoren auch die Online-Hilfe für diesen Systembefehl verwenden. Diese Systemhilfe kann Administratoren Online-Anleitungen zur Verwendung von Systembefehlen bieten.

5. Melden Sie den Ausführungsstatus bestimmter Programme.

Wenn im System viele Programme ausgeführt werden, kann das Sortieren der Programmnamen Administratoren dabei helfen, die Programme zu finden, die sie interessieren. Aber das ist immer noch nicht der einfachste Weg. Beispielsweise stellen Systemadministratoren jetzt in anderen Betriebssystemen fest, dass im Hintergrund des Systems ein Trojaner-Programm namens Threadx läuft. Aus diesem Grund muss der Administrator prüfen, ob das Trojaner-Programm auch auf anderen Computern läuft. Wie geht man damit um? Verwenden Sie die Sortierfunktion, um die Namen der Programme zu sortieren (beachten Sie, dass Sie nicht die PIDs der Programme sortieren, denn selbst wenn die Programme gleich sind, ist die Startzeit unterschiedlich oder die Anzahl der Programme unterschiedlich Die PID-Nummer, die im Betriebssystem gestartet wurde, ist unterschiedlich. Mit anderen Worten: Diese PID-Nummer wird automatisch generiert. Dies kann Administratoren dabei helfen, die Programmerkennung bis zu einem gewissen Grad zu beschleunigen. Der Autor glaubt jedoch, dass Systemadministratoren die benötigten Anwendungsinformationen möglicherweise schneller finden, wenn sie Abfragebefehle wie Pipe-Zeichen und grep verwenden können.

Wenn der Systemadministrator nun diesen Befehl ps aux |. grep „threadx“ verwendet, listet das System zunächst alle Anwendungen auf, die im aktuellen System ausgeführt werden (einschließlich derjenigen, die im Vordergrund und im Hintergrund ausgeführt werden). Übergeben Sie dann die Ausgabeergebnisse über das Pipe-Symbol | an den Befehl grep. Anschließend sucht der Befehl grep in den vom Befehl ps ausgegebenen Ergebnissen nach Informationen über das Threadx-Programm, das ausgeführt wird. Wenn dies der Fall ist, werden die Informationen dieses Programms im Fenster angezeigt und die laufenden Informationen anderer Anwendungen werden herausgefiltert. Es ist ersichtlich, dass die Verwendung des Pipe-Zeichens in Kombination mit anderen Abfragebefehlen Systemadministratoren dabei helfen kann, die gewünschten Anwendungsinformationen in kürzester Zeit zu finden.

kann auch mit einigen Sondersymbolen kombiniert werden, um verantwortungsvollere Funktionen zu erreichen. In Verbindung mit dem Befehl cat kann die Anzahl der Programme gezählt werden, die die Bedingungen erfüllen. Wenn Sie nach dem Befehl das Symbol > hinzufügen, können die Ausgabeergebnisse in einer Datei gespeichert werden. In Kombination mit Platzhaltern kann eine Klasse von Programmen abgefragt werden, die bestimmte Bedingungen erfüllen. Sie können beispielsweise auch die Ausführungsinformationen des übergeordneten Programms oder seiner Unterprogramme usw. eines bestimmten Programms abfragen.

Ende

Ausführlichere Erklärungen zu ps-Befehlen und verwandte Artikel finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn