it-swarm.com.de

Wie kann ein Programm nach dem Abmelden von ssh weiter ausgeführt werden?

Mögliches Duplikat:
Verhindert, dass ein Hintergrundprozess nach dem Schließen des SSH-Clients beendet wird

Ich habe ein Programm, dessen Fertigstellung viel Zeit in Anspruch nimmt. Es läuft als root über ssh.
Ich möchte, dass es nach dem Abmelden weiterhin ausgeführt wird. Ist dies möglich und wie würde ich dies erreichen?

156
omg

Angenommen, Sie haben ein Programm im Vordergrund, drücken Sie Strg-Z, dann:

[1]+  Stopped                 myprogram
$ disown -h %1
$ bg 1
[1]+ myprogram &
$ logout

Wenn es nur einen Job gibt, müssen Sie die Jobnummer nicht angeben. Benutz einfach disown -h und bg.

Erklärung der obigen Schritte:

Sie drücken Strg-Z. Das System hält das laufende Programm an, zeigt eine Auftragsnummer und eine Meldung "Gestoppt" an und bringt Sie zu einer Bash-Eingabeaufforderung zurück.

Sie geben das disown -h %1 Befehl (hier habe ich einen 1, aber Sie würden die Auftragsnummer verwenden, die in der Meldung Stopped angezeigt wurde.) Diese kennzeichnet den Auftrag, sodass das Signal SIGHUP ignoriert wird (es wird nicht durch Abmelden gestoppt).

Geben Sie als Nächstes den Befehl bg mit derselben Auftragsnummer ein. Dies setzt die Ausführung des Programms im Hintergrund fort und eine Meldung bestätigt dies.

Sie können sich jetzt abmelden und es läuft weiter.

324

Sie sollten versuchen, Nohup zu verwenden und im Hintergrund auszuführen:

Nohup sleep 3600 &
78
paxdiablo

Ich würde das Programm versuchen Bildschirm .

40
Janusz

Beginnen Sie im Hintergrund:

./long_running_process options &

Und lehne den Job ab, bevor du dich abmeldest:

disown
14
diciu
13

Sie können screen verwenden, trennen und erneut anfügen

3
brndnmg