Prozessverwaltung



1. Alle Prozesse auflisten


ps ax



2. Prozesse systemweit beenden


Das Programm mit der eine bestimmten Prozessnummer beenden
kill <prozessnummer>


Alle Programme, die wget beinhalten beenden
killall wget


Alle Programme, die den Namen sensor.py enthalten beenden.
ps -a -C sensor.py -o pid | tail -n +2 | xargs kill -9





3. Prozessverwaltung mit bg und fg


Die Befehle bg, fg und jobs ermöglichen die Verwaltung mehrerer Prozesse an einer Konsole.

Ein laufender Prozess kann mit der Tastenkombination Strg - z angehalten werden. Die Eingabeaufforderung wird wieder sichtbar. Anhalten bedeutet nicht, dass der Prozess beendet wird. Der Prozess kann mit dem Befehl bg im Hintergrund fortgesetzt werden. Alternativ kann ein Prozess mit fg wieder in den Vordergrund geholt und fortgesetzt werden. Im Hintergrund ausführen bedeutet, dass dir Eingabeaufforderung zur Verfügung steht.

Mit jobs kann man sich den Status der Prozesse anzeigen lassen, die aktuell an die Konsole gebunden sind.
[1]+  Stopped                 octave
[2]-  Running                 nmap 127.0.0.1 -A >/dev/null &


Alternativ kann man an eine Befehlszeile das Zeichen & anhängen. Das Bewirkt das gleiche wie die Tastenkombination Strg - z mit dem nachfolgenden Befehl bg. Das bedeutet also im Hintergrund ausführen.

Einen großen Nachteil hat die Verwaltung der Prozesse mit diese Methode. Wird die Konsole beendet, so werden damit alle Prozesse auch beendet.


4. Ausgabe unterdrücken


Gerade bei der Arbeit mit bg und fg kann die Ausgabe der Programme etwas hinderlich sein. Die Ausgabe der im Hintergrund laufenden Prozesse lässt sich unterdrücken.

Für die normale Ausgabe
Befehlszeile > /dev/null


oder für die Fehlerausgabe
Befehlszeile 2> /dev/null


Oder in Kombination
Befehlszeile > /dev/null 2> /dev/null.


Anstelle von /dev/null kann die Ausgabe auch in eine Datei erfolgen.


5. nohup


Oben wurde das Problem mit dem Beenden der Prozesse mit dem Beenden der Konsole angesprochen. Wir ein Befehl mit nohup gestartet, so kann man sich ausloggen und der Prozess läuft dennoch weiter. Noch besser ist jedoch, meiner Ansicht nach der Befehl screen.

nohup <Befehlszeile>



6. screen


6.1Einen Befehl ausführen und ausloggen

  • Geben screen ein.
  • Sie können jetzt, wie gewohnt Befehle eingeben. Programme starten...
  • Die Tastenkombination zum so genanten detach ist Strg-a Strg-D
  • Ein laufender Prozess wird im Hintergrund fortgesetzt
  • Danach kann man sich ausloggen

6.2Einloggen und Prozess wieder

  • Loggen sie sich ein
  • Kommando zum so genanten reattach ist screen -r

6.3Auflisten


screen -ls



7. Prozesspriorität mit nice


7.1Prozess mit Priorität starten


-20 (hoch) bis 19 (niedrig)

nice <Priorität> <Befehlszeile>


7.2Beispiele


Programm Octave mit Priorität 5 starten
nice -5 ocatve


Programm Octave mit Priorität -5 starten
nice --5 ocatve


7.3Experiment


Fünf Prozesse des Programms Octave auf Vollast mit der Anweisung
for i=1:100000;w=i*.234i+i*.251;a(i)=sin(.587^w);end


PrioritätCPU-Auslastung
-2034.4 %
-125.0 %
021.8 %
1010.6 %
192.0 %




Siehe auch
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki