Linux-Befehl „screen“ – Einen Bildschirm starten und gleichzeitig etwas darauf ausführen?

Linux-Befehl „screen“ – Einen Bildschirm starten und gleichzeitig etwas darauf ausführen?

Ich bin ein großer Fan des Linux-Programms „Screen“, mit dem ich innerhalb einer SSH-Sitzung einen Bildschirm starten kann, der auch nach der Trennung der Verbindung bestehen bleibt.Weitere Informationen zum Bildschirm finden Sie hier

Gibt es eine Möglichkeit, eine Bildschirmsitzung von einer Befehlszeile aus zu starten, die innerhalb dieser Bildschirmsitzung automatisch ein anderes Programm (oder .sh-Skript) startet?

Ich möchte dies zur Boot-Reihenfolge meines Raspberry Pi hinzufügen, sodass immer ein Bildschirm angezeigt wird, auf dem automatisch Software ausgeführt wird, selbst wenn der Pi neu gestartet wird, sodass ich mich jederzeit per SSH mit dem Pi verbinden kann, um die Ausgabe dieser Software anzuzeigen.

Ich habe mir angesehendiese Lösung, aber das hilft nur teilweise. Es beginnt mit einem Bildschirm wie diesem

screen -t "df" watch -n 10 df

und startet erfolgreich den Befehl „df“.

Wenn das Programm jedoch fertig ist, wird der Bildschirm geschlossen und verschwindet.

Ich möchte, dass der Bildschirm aktiv bleibt, auch wenn das ursprünglich gestartete Programm beendet wird.

Antwort1

Ändern Sie den Befehl wie folgt:

screen -t "df" bash -c 'watch -n 10 df; exec bash'

bash -c: Verwendenbash -cum mehrere Befehle auszuführen.

exec bash: NachdfWenn der Befehl beendet wird, wird eine Shell (Bash) gestartet, die erst beendet wird, wenn sie durch etwas Externes beendet wird.

Antwort2

Dies erreichen Sie, indem Sie die Befehle in einer Shell ausführen, die nach Abschluss des Befehls weiter ausgeführt wird.

Zum Beispiel inVerhindern Sie, dass der GNU-Bildschirm die Sitzung beendet, sobald das ausgeführte Skript endet, die akzeptierte Antwort macht einen

exec bash

nach dem Befehl, um eine Shell zu starten, wenn der Befehl abgeschlossen ist.

verwandte Informationen