Diese Frage hat hier bereits eine Antwort:
Ich habe ein paar Befehle, die ich ausführen muss. Diese Befehle müssen kontinuierlich ausgeführt werden, auch nachdem ich meine Schnittstelle verlassen habe. Wenn ich Zugriff auf die Linux-GUI habe, führe ich Folgendes aus:
cd /home/testuser/Scripts*
xterm -hold -T "Background_Script1" -e "service1-start.sh" &
sleep 10
xterm -hold -T "Background_Script2" -e "service2-start.sh" &
Jede Hilfe wird sehr geschätzt.
linux
command-line
putty
process
gnu-screen
user3331952
quelle
quelle
set -m;
macht es so, dass meine Skripte weiterlaufen, nachdem ich mich bei CentOS und RHEL abgemeldet habe.Antworten:
Versuchen
nohup stellt sicher, dass ein Prozess nicht beendet wird, wenn ein Terminal geschlossen wird. Die & amp; Symbol drückt den Prozess in den Hintergrund.
Hoffe das war hilfreich.
quelle
nohup
, es ist im Grunde "no hangup" - mit nohup, dem hangup (HUP
) Signal wird ignoriert.Wenn Sie die Ausgabe zu einem späteren Zeitpunkt lesen möchten, können Sie verwenden
screen
:Dadurch erhalten Sie ein separates Terminal, zu dem Sie später eine Verbindung herstellen können (
screen -r
), um die Ausgabe von stdout / stderr zu lesen.quelle
screen -r
) Sie haben auch die gesamte Ausgabe Ihres Programms und Sie hätten sonst "versäumt". Außerdem kann der Bildschirm so viele erstaunliche Dinge tun, z. :)Eine andere Option, wenn
nohup
Befehl ist nicht verfügbar, ist die Verwendung der verleugnen Befehl.Zuerst können Sie Ihre Hintergrundaufgaben anzeigen, indem Sie sie ausführen
jobs
im Terminal. Dort erhalten Sie die Auftragsnummer.Jetzt lauf einfach
disown %[job number]
Der Prozess wird vom aktuellen Terminal getrennt und bleibt beim Abmelden erhalten.Randbemerkung: Stellen Sie sicher, dass Sie die richtige Frage stellen. Wenn Sie tatsächliche Dienste ausführen, während Sie in Ihrem Beispiel darauf hinweisen, möchten Sie möglicherweise prüfen, wie ein Dämon in einem Betriebssystem Ihrer Wahl erstellt wird. Dadurch wird sichergestellt, dass der Prozess nach einem Neustart noch ausgeführt wird und mit anderen Diensten konsistenter ist.
Hoffe das hilft.
quelle
Schon seit
screen
wurde bereits erwähnt: Es gibt andere Terminal-Multiplexer. ich magtmux
sehr viel, siehe z.B. diese andere Superuser-Frage, TMV vs Bildschirm zum Vergleich.quelle
Sie können auch versuchen:
setsid
Setsid funktioniert auch für Hintergrundprogramme und ermöglicht es ihnen, weiter zu laufen, nachdem die Terminal / ssh-Sitzung getrennt wurde.Verwenden Sie es so:
Manpage: http://man7.org/linux/man-pages/man2/setsid.2.html
quelle