|
Hintergrundprozesse
Der Start eines Prozesses im Hintergrund erfolgt durch anhängen eines "&"
an die Befehlszeile. Alle Kommandoeingaben bleiben wie vorher - auch der Ersetzungsmechanismus der Shell wirkt nach wie vor. Ebenso möglich sind Pipes. Zum Beispiel:find / -user markus -print & 2354 Es wird die Nummer (PID) des neu erzeugten Prozesses ausgegeben (2354) und die Shell meldet sich sofort wieder mit dem Eingabeprompt. So wie das Kommando oben eingegeben wurde, hat es aber noch einen Nachteil:
Alle Ausgaben von find, auch die Fehlerausgaben, gelangen nach wie vor
auf den Bildschirm, was u. U. die Arbeit im Vordergrund empfindlich stört.
Durch Ein-/Ausgabeumleitung kann der Hintergrundprozeß zum Schweigen gebracht
werden:
find / -user markus -print > liste 2> /dev/null &
2354
Eigenschaften von Hintergrundprozessen:
- Hintergrundprozesse sind Vordergrundprozessen gleichberechtigt, sie laufen
gleich schnell ab.
- Jedes Programm kann im Hintergrund ablaufen.
- Die Standardeingabe und -ausgabe ist weiterhin an das Terminal gebunden
(Umleitung nötig).
- Hintergrundprozesse (übrigens auch Vordergrundprozesse) können mit
dem kill-Kommando (siehe später) zwangsterminiert werden.
- Die Shell wartet nicht auf den Hintergrundprozeß, sondern ist sofort
wieder eingabebereit.
- Beim Logoff werden auch alle Hintergrundprozesse gekillt, sofern nicht
besondere Maßnahmen getroffen werden.
- Mit dem ps-Kommado kann man den Status der Prozesse ansehen.
Weitere Kommandos für den Start von Hintergrundprozessen sind:
nice [-increment] Kommando &
Kommando zum Ausführen eines Hintergrundprozesses mit niedrigerer
Priorität. increment gibt an, um wieviel die Priorität
des Prozesses herabgesetzt werden soll (Voreinstellung: 10). Der Superuser
kann Prozesse auch mit höherer Priorität laufen lassen, indem
er ein negatives Increment angibt.
nohup Kommando &
(No Hang Up) Dieses Kommando ermöglicht es, einen Prozeß nach dem
Logoff weiterlaufen zu lassen. Wenn die Ausgaben nicht explizit umgelenkt wurden,
werden Standardausgabe und Standard-Fehlerausgabe in die Datei nohup.out im
zuletzt aktuellen Verzeichnis geschrieben. Sollte dies nicht möglich sein
(Zugriffsrechte nicht ausreichend), wird nohup.out im Home-Directory des Benutzers
angelegt. Bei einigen Anlagen gibt es das Kommando "batch" mit analogen Eigenschaften.
|
|
|