Wie kann ich den Bildschirm dazu bringen, einen Befehl auszuführen und dann zu trennen (dh automatisch in einem einzelnen Skript ohne weitere Eingabe, nachdem das Skript anfänglich gestartet wurde)? Ich starte zB myscript.sh und es startet automatisch eine Bildschirmsitzung, führt einen Befehl aus und trennt sich dann.
command-line
script
gnu-screen
Darkfeline
quelle
quelle
screen yourcommand
auf das-d
und zu verzichten-m
und schau, wie das zuerst geht.zombie
Option auf dem Bildschirm aktivieren . Setzen Siezombie xy
in Ihre~/.screenrc
. Es sollte auch möglich sein, es nur für eine Sitzung zu aktivieren, indem Sie einezombie xy
andere Datei einfügen und verwenden,-c file
aber aus irgendeinem Grund funktioniert das nicht, wenn ich es versuche. Oder verwenden Sie einfachsh -c 'yourcommand;while :;do sleep 9999; done'
Um einen einzelnen Befehl auf dem Bildschirm auszuführen und die Verbindung zu trennen, können Sie versuchen:
Versuchen Sie Folgendes, um mehrere Befehle auszuführen:
Bitte beachten Sie, dass beim Beenden eines Programms der Bildschirm (standardmäßig) das Fenster schließt, in dem sich das Programm befindet.
Wenn Sie nicht möchten, dass Ihre Sitzung nach Abschluss des Skripts beendet wird, fügen Sie
exec sh
am Ende Folgendes hinzu:Um alle Ihre Sitzungen aufzulisten, versuchen Sie:
Verwandte Themen: Unix-Bildschirm starten, Befehl ausführen, Trennen .
quelle
-S sessionname
:screen -dmS MyLongRunningScript bash -c "..."
.Um eine neue Sitzung im Hintergrund mit dem Namen 'schläfrig' zu starten
Um "schläfrige" Sitzung zu töten
quelle
screen -S sleepy -dm "cd myfolder;sleep 60"
?quelle
Das passiert mir, wenn ich die Taste c (sig int) drücke, um mein Programm zu verlassen. es tritt den ganzen Weg von allen Bash aus. Also fand ich das, um SIGINT zu fangen. und verhindern, dass die letzte Bash beendet wird. (muss zum Beenden exit eingeben)
Ich finde es nützlich, Cron zu verwenden, um NodeJS-Programme beim Start auszuführen. und um den Bildschirm beim Booten zu starten. in cron gibt es spezielle events syntax @reboot event
quelle