8.3 Hintergrundprozess wieder hervorholen
Was ein Hintergrundprozess ist und wie Sie einen solchen starten können, wurde bereits beschrieben. Der Vorteil eines Hintergrundprozesses ist, dass der laufende Prozess die Shell nicht mehr blockiert. Allerdings ist es auch nicht mehr möglich, die Standardeingabe bei Hintergrundprozessen zu verwenden. Die Standardeingabe wird hierbei einfach ins Datengrab (/dev/null) gelenkt. Zwar können Sie den Inhalt einer Datei umlenken
kommando < file &
aber sobald hier etwas von der Tastatur gelesen werden soll, hält der Prozess an und wartet korrekterweise auf eine Eingabe. Ein einfaches Beispiel:
# Name bg1
printf "Eingabe machen : "
read
echo "Ihre Eingabe lautet $REPLY"
Führen Sie dieses Script jetzt im Hintergrund aus, passiert Folgendes:
you@host > ./bg1 &
[1] 7249
you@host > Eingabe machen :
[1]+ Stopped ./bg1
Das Script wird angehalten, denn es wartet ja auf eine Eingabe von der Tastatur. Ein Blick auf die laufenden Prozesse mit ps bestätigt dies auch:
7249 pts/41 T 0:00 /bin/bash
Ein gestoppter Prozess hat das T (traced) in der Prozessliste stehen. Damit Sie diesen Prozess jetzt weiterarbeiten lassen können, müssen Sie ihn in den Vordergrund holen. Dies können Sie mit dem Kommando fg %1 (für foreground) erreichen.
you@host > fg %1
./bg1
hallo
Ihre Eingabe lautet hallo
you@host >
Genaueres zu fg (und zum Gegenstück bg) erfahren Sie in Abschnitt 8.7, wenn es um die Jobverwaltung geht.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.
|