Vorder- und Hintergrundprozess
Ein Vordergrundprozess ist ein Prozess, auf dessen Beendigung die Shell wartet.
Ein Hintergrundprozess läuft parallel zur Shell weiter. Die Shell nimmt währenddessen neue Eingaben entgegen.
Vordergrundprozess
ping tu.berlin
Die Shell ist blockiert, bis ping beendet wird oder abgebrochen wird.
Hintergrundprozess
ping tu.berlin &
Das abschließende & startet den Prozess im Hintergrund.
Umsetzung in einer Shell
Typischer Ablauf:
- Shell erzeugt mit
fork()einen Kindprozess. - Kindprozess startet mit
execvp()das gewünschte Programm. - Elternprozess:
- wartet bei Vordergrundausführung mit
waitpid(pid, NULL, 0) - wartet bei Hintergrundausführung nicht sofort
- wartet bei Vordergrundausführung mit