Ich bin ein Neuling in Ubuntu. Ich habe einen Befehl gelernt
nohup [command]
- <command>
Immun gegen Auflegen
Ich kann die Bedeutung von " Immun gegen Auflegen " nicht verstehen . Um welche Art von Signal handelt es sich? Und bitte erklären Sie mir, wie dieser Befehl mit einem Beispiel verwendet wird.
command-line
nohup
coding_ninza
quelle
quelle
disown
ist eine bessere Alternative zunohup
. Hintergrund einen Befehl mitcommand &
oderCtrl-Z
, dann verwenden Siedisown
, um es von der Shell zu trennen.Antworten:
Angenommen, Sie haben einen
gedit
Texteditor in einem Terminal geöffnet und arbeiten daran. Wenn Sie das Terminal vor dem Schließen schließengedit
, wird der gedit ebenfalls geschlossen, sobald Sie das Terminal schließen. Also, was ist hier los? Dasgedit
läuft als Child-Prozess unter dem Terminal. Wenn Sie das Terminal schließen, wird ein Auflegesignal (SIGHUP
) an den Prozess gesendet, der den untergeordneten Prozess beendet.Wenn Sie andererseits möchten
gedit
, dass Ihr untergeordneter Prozess (hier ) auch nach dem Schließen des übergeordneten Terminals weiter ausgeführt wird, möchten Sie, dass Ihr Prozess gegen das Auflegen-Signal immun ist. Wenn Sie das Terminal schließen, wird der untergeordnete Prozess nicht geschlossen.nohup
macht genau diesen Job.nohup
Trennt einen Befehl nicht vom Terminal , lässt Ihr Skript SIGHUP ignorieren und leitet stdout / stderr in eine Datei nohup.out um, sodass der Befehl nach dem Abmelden im Hintergrund weiter ausgeführt werden kann. Wenn Sie die Shell / das Terminal schließen oder sich abmelden, ist Ihr Befehl kein untergeordnetes Element dieser Shell mehr. Es gehört zum init-Prozess. Wenn Sie in suchenpstree
, sehen Sie, dass es jetzt Prozess 1 (init) gehört. Das kann nicht wieder in den Vordergrund gebracht werden, da der Vordergrund nicht mehr existiert.quelle
Abgesehen von dem, was @sourvac geschrieben hat, ist dies ein Erbe von Back In The Day, als sich Leute über reine Textterminals angemeldet haben, oft über das (originale, analoge 110-Baud) Modem: Das "Auflegen" bedeutet buchstäblich "Auflegen" ".
Eine PID, die gegen Auflegen immun ist, läuft auch dann weiter, wenn Sie sich abmelden und den Hörer auflegen . Dies war auf langsamen Computern sehr nützlich, wenn Jobs stundenlang ausgeführt wurden und Sie nicht einfach eingeloggt bleiben konnten (jemand anderes musste das Terminal benutzen, Sie mussten das Telefon benutzen, statisch in der Leitung konnte die Verbindung "bzzt" sein , etc).
quelle