Ist es möglich, einen Befehl oder ein Bash-Skript-Exit-Terminal zu starten und NICHT den Befehl zu unterbrechen?
Meine Lösung bestand darin, Cron zu einer bestimmten Tageszeit auszuführen, aber ich bin mir sicher, dass es etwas Leichteres gibt.
Ist es möglich, einen Befehl oder ein Bash-Skript-Exit-Terminal zu starten und NICHT den Befehl zu unterbrechen?
Meine Lösung bestand darin, Cron zu einer bestimmten Tageszeit auszuführen, aber ich bin mir sicher, dass es etwas Leichteres gibt.
Antworten:
Um zu vermeiden, dass Exit-Signale an untergeordnete Prozesse des Terminals und der Shell weitergegeben werden, führen Sie den Befehl folgendermaßen aus nohup:
nohup cmd &
cmd & disownfunktioniert auch, da das &wie ein ;Befehlstrennzeichen behandelt wird . Der Befehl disown entfernt die Verbindung zwischen der Bash-Shell-Sitzung und dem Befehl backgrounded.
cmd &|.
Wenn Sie nach dem Verlassen des Terminals etwa jede Sekunde einen bestimmten Befehl oder eine bestimmte Datei im Hintergrund ausführen möchten, können Sie diese einfache Kleinigkeit ausprobieren.
nohup watch -n5 'bash script.sh' &
Das würde scipt.sh alle 5 Sekunden ausführen.
Fügen Sie nach Ihrem Befehl ein "&" ein.
z.B:
/home/your/script.sh &
/home/your/script.shda er nicht von seinem "übergeordneten", sondern nur "im Hintergrund" getrennt wurde. Verwenden Sie nohup, um es für echte abzunehmen.
nohup-, das auch alle (jetzt unsichtbaren) Ausgaben in einer Datei mit dem Namen protokolliert, die nohup.outsich in dem Verzeichnis befindet, von dem aus Sie den Befehl gestartet haben.
jobsBefehl in Ordnung sein. Sehr oft möchte ich in der Lage sein, nach dem Hintergrund des Shell-Prozesses wieder zum Shell-Prozess zurückzukehren.