@davo
Stimmt nicht ganz:
http://www.informatik.uni-frankfurt.de/doc/ux01/paragraph3_6_4_2_2.html
Hintergrundprozesse
UNIX bietet zusätzliche Funktionalitäten, die den Benutzern die Ausführung von Prozessen im Hintergrund ermöglichen. Im Zusammenhang mit Hintergrundprozessen ist folgendes zu beachten:
* es sollten nur solche Prozesse im Hintergrund ausgeführt werden, die nichtauf die Standardausgabe schreiben und auch keine Eingabe erwarten;
* Hintergrundprozesse haben keinen Zugriff auf die Standardeingabe, sie können nicht durch die Tastenkombination abgebrochen werden;
* zum Zeitpunkt des Ausloggens noch laufende Hintergrundprozesse des Benutzers werden nicht aus dem System entfernt.
Um einen Prozeß im Hintergrund auszuführen, gibt es mehrere Möglichkeiten. Beim Aufrufen eines Programmes kann die Ampersand (&)-Notation verwendet werden:
hera>prog2 &
die C-Shell bestätigt den Start des Hintergrundprozesses z. B. mit folgender Meldung:
1 23460
wobei in eckigen Klammern die vorerwähnte kleine Integerzahl und danach die Prozeßid (PID) angegeben werden, letztere wird zur Verwaltung des Prozesses durch das System benutzt. Prozesse, die von der Shell durch eine Integerzahl nummer verwaltet werden, können durch Eingabe von fg %nummer in den Vordergrund geholt bzw. bg %nummer in den Hintergrund gestellt werden.
Beispiel: (Fortsetzung von oben)
hera>
(keine Auswirkung, 'prog2' läuft im Hintergrund)
hera>fg %1
('prog2' läuft jetzt im Vordergrund)
hera>
stopped
hera>
(Eingabe hat 'prog2' gestoppt)
Mit
hera> bg %1
wird die Ausführung von 'prog2' im Hintergrund fortgesetzt und durch Eingabe von
hera>prog1
'prog1' quasiparallel im Vordergrund ausgeführt:
10:02:30
10:02:40
...
Nach Stoppen von 'prog1' durch
hera>
befindet sich kein Prozeß mehr im Vordergrund. Mit jobs gelangt man zur Aufstellung der von der Shell verwalteten Prozesse:
hera>jobs
Zur Beendigung beider Prozesse kann der Shell-Befehl kill benutzt werden:
hera>kill %1%2
Dabei wird folgende Rückmeldung ausgegeben:
....
Müßte bei der bash-Shell in etwa auch so sein.
Ich habe bis jetzt aber noch nicht herausgefunden, was da im Detail passiert, wenn man einen Prozess im Hintergrund laufen läßt.