Linux: Bildschirm beenden, sobald der darin enthaltene Prozess beendet ist

Linux: Bildschirm beenden, sobald der darin enthaltene Prozess beendet ist

Im Moment führe ich einen Prozess innerhalb von GNU Screen aus. Screen wird mit dem Befehl gestartet screen -dmS screennameund mit angehängt screen -r screenname. Ein Prozess wird in der Screen-Sitzung gestartet und nach einiger Zeit beendet.

Wie kann ich den Bildschirm beenden, wenn der darin enthaltene Prozess beendet ist?

Hinweis: Ich würde keine Schleife bevorzugen, daher suche ich nach einer Alternative. Manchmal starte ich den Prozess mit einem , der & exitihm folgt, aber das wird nie ausgeführt, wenn ich es kill -9 pidauf den Prozess anwende.

Antwort1

Starten Sie den Vorgang mit exec, so dass dies das einzige Element auf dem Bildschirm ist (es ersetzt die Shell, anstatt nach Abschluss zur Shell zurückzukehren).

Antwort2

Versuche dies:

screen -dmS screenname sleep 5
sleep 3
screen -ls
sleep 3
screen -ls

Auf dem ersten screen -lssollten Sie Ihre Screen-Sitzung sehen. Auf dem zweiten sollte sie verschwunden sein. Screen wird automatisch beendet, wenn das letzte Fenster geschlossen wird. Da Sie nur ein einziges Programm in Screen ausführen, wird das letzte (und einzige) Fenster in der Screen-Sitzung geschlossen, wenn das Programm beendet wird. Wenn Sie das Programm starten, indem Sie sich an die Screen-Sitzung anschließen und dann den Befehl in der Shell-Eingabeaufforderung innerhalb der Screen-Sitzung eingeben, wartet Screen darauf, dass Ihre Shell beendet wird. Sie können dies veranlassen, wenn das Programm beendet wird, indem Sie exec PROGRAMstatt nur PROGRAMin der Shell-Eingabeaufforderung eingeben (tatsächlich wird dadurch die Shell beendet und durch ersetzt PROGRAM).

Wenn Sie nur die Abnehmbarkeit des Bildschirms benötigen und sonst nichts, ist eine leichte Alternativedtach.

Antwort3

Sie können die Bildschirmsitzung mit dem Namen eines Befehls starten. Beispielsweise screen -dmS session vimwird eine Bildschirmsitzung geöffnet, die mit vim beendet wird. Innerhalb einer bestehenden Bildschirmsitzung können Sie Folgendes verwenden, execum denselben Effekt zu erzielen:.

verwandte Informationen