Ich möchte ein Bash-Skript auf einem separaten Bildschirm ausführen. Das Skript ruft einige Male ein Programm auf, von denen jedes zu lange dauert, um zu warten. Mein erster Gedanke war, einfach einen Bildschirm zu öffnen und dann das Skript aufzurufen, aber es scheint, dass ich mich nicht lösen kann, ctrl-a d
während das Skript ausgeführt wird. Also habe ich ein bisschen recherchiert und diese Anweisung gefunden , um den Shebang durch Folgendes zu ersetzen:
#!/usr/bin/screen -d -m -S screenName /bin/bash
Aber das funktioniert auch nicht (die Optionen werden nicht erkannt). Irgendwelche Vorschläge?
PS Mir fällt gerade ein, dass screen -dmS name ./script.sh
das wahrscheinlich für meine Zwecke funktionieren würde, aber ich bin immer noch neugierig, wie ich das in das Skript einbauen kann. Vielen Dank.
quelle
"$0"
für hier?screen
,/bin/bash
wodurch das Skript erneut aufgerufen wird.Nach den Bildschirm-Manpages:
screen -d -m
Startbildschirm im getrennten Modus. Dadurch wird eine neue Sitzung erstellt, aber keine Verbindung hergestellt. Dies ist nützlich für Systemstart-Skripte.-S sessionname
Setzen Sie den Namen der neuen Sitzung auf Sitzungsname.Als ich den von Ihnen angegebenen Befehl ausgeführt habe:
screen -dmS name ./script.sh
Der Bildschirm startet ein Fenster mit dem Namen name und führt die Datei script.sh automatisch aus. Um dorthin zurückzukehren und den Status anzuzeigen, geben Sie einfach Folgendes ein:
screen -r test
Jetzt mit Ubuntu 14.04 sind die Befehle etwas anders. Versuchen:
screen -d -m -S test
Um das Skript jetzt auszuführen, müssen Sie zu ihrer Konfigurationsdatei gehen, um dies zu tun:
sudo vim /etc/screenrc
Sobald Sie dort sind, scrollen Sie nach unten und Sie werden sehen:
In diesem Abschnitt müssen Sie den auszuführenden Skriptnamen hinzufügen, damit Sie auf dem Bildschirm alles tun können, was Sie benötigen.
quelle
screen -dmS ...
funktioniert dieses Kommando ( ) bei mir nicht, obwohl es eigentlich sollte. Ich führe es aus und dann werden auchscreen -ls
keine Steckdosen gefunden. Gedanken?Dies ist ein bisschen alt, aber einer der wenigen Threads, die ich finden konnte, um dies zu tun. Nach dem Spielen mit arount ist die einzige Möglichkeit, dies mit ubuntu 14 im getrennten Modus zum Laufen zu bringen
Der Start wäre der zweite Teil darüber, der die aktuellen Java-Befehle und die Serverversion enthält. Ich betreibe Vanille.
quelle