Frage Starten Sie den Unix-Bildschirm, führen Sie den Befehl aus, trennen Sie [duplizieren]


Diese Frage hat hier bereits eine Antwort:

Wie kann screen verwendet werden, um eine neue Sitzung zu starten und einen Befehl innerhalb dieser Sitzung auszuführen, ohne diese Sitzung zu beenden?

 screen -S myScreenName runSomething

Ich habe den obigen Befehl ausprobiert und es heißt

[screen is terminating]

Hat es den Befehl ausgeführt und dann den Bildschirm beendet? Ich möchte, dass der Bildschirm nach dem Ausführen des Befehls getrennt wird, anstatt ihn zu beenden. Wie kann das gemacht werden?


22
2018-02-27 02:23


Ursprung


Warum benutzen Sie den Bildschirm überhaupt, wenn der Befehl sofort beendet wird? - Michael Hampton♦
@MichaelHampton der Befehl wird nicht sofort beendet, es läuft ein Daemon, der auf stdout druckt, also möchte ich es in einer Bildschirmsitzung behalten. Ich werde die Bildschirmsitzung von einem Ansible-Playbook starten. Ich weiß nicht, warum der Bildschirm beendet wird, wenn ich diesen Befehl ausgeführt habe. - Nyxynyx
Dann sagen Sie dem Daemon, dass er nicht dämonisieren soll. - Michael Hampton♦
@MichaelHampton Großartig, das funktioniert. Kann der Bildschirm aufgefordert werden, sich nach dem Ausführen des Befehls zu trennen? Versucht -d aber es sagt There is no screen to be detached matching myScreenName - Nyxynyx


Antworten:


Dieses Skript verhindert das Beenden von Sitzungen:

screen -dmS test bash -c 'echo waiting 5 senconds...; sleep 5; exec bash'

Grüße!


26
2017-10-20 17:34





einen Befehl ausführen und von der Sitzung trennen:

screen -d -m runSomething

11
2018-02-27 03:20



Der Bildschirm wird immer noch beendet, wenn dieser Befehl verwendet wird. - Luc


Wenn Sie immer wieder die richtigen Buchstaben hinter dem Bindestrich vergessen, können Sie, um diese Frage nicht erneut zu beantworten, auch Folgendes eingeben:

screen -h

wo du sehen wirst:

-dmS name     Start as daemon: Screen session in detached mode.

4
2017-11-25 16:00