GNU/Linux >> Znalost Linux >  >> Linux

Proč Wget nezemřel po ztrátě připojení Ssh?

I ssh ed na můj server a spustil wget -r -np zzz.aaa/bbb/ccc a začalo to fungovat. Pak se moje internetové připojení (u mě doma) přerušilo a já se obával, že wget bylo hup ped, protože ssh spojení bylo ztraceno, a proto terminál nefungoval. Ale pak jsem ssh ed na můj server a uvědomil jsem si, že stále běží a vložil výstup do wget.log a stahování věcí. Může mi prosím někdo vysvětlit, co se zde mohlo stát?

To je to, co ps mi dává:

PID   %CPU %MEM    VSZ    RSS TTY     STAT START   TIME COMMAND
32283  0.6 29.4 179824 147088 ?       S    14:00   1:53 wget -r -np zzz.aaa/bbb/ccc

Co to dělá (otazník) ? střední hodnota ve sloupci tty ?

Přijatá odpověď:

Programy (a skripty) se mohou rozhodnout ignorovat většinu signálů, kromě několika jako KILL . HUP signál lze zachytit a ignorovat, pokud si to software přeje.

Toto je z src/main.c z wget zdroje (verze 1.19.2):

/* Hangup signal handler.  When wget receives SIGHUP or SIGUSR1, it
   will proceed operation as usual, trying to write into a log file.
   If that is impossible, the output will be turned off.  */

O něco níže je nainstalován obslužný program signálu:

  /* Setup the signal handler to redirect output when hangup is
     received.  */
  if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
    signal(SIGHUP, redirect_output_signal);

Takže to vypadá jako wget neignoruje HUP signál, ale rozhodne se pokračovat ve zpracování s jeho výstupem přesměrovaným do souboru protokolu.

Požadováno v komentářích:Význam ? v TTY sloupec výstupu z ps otázkou je, že wget proces již není spojen s terminálem/TTY. TTY zmizel, když selhalo připojení SSH.


Linux
  1. Jak zkontrolovat rychlost vašeho ssh připojení

  2. Proč „sshpass“ není správný způsob automatizace přenosů souborů v Linuxu

  3. Proč server zablokoval moji IP?

  1. Proč není Pgid procesů dítěte PGID rodiče?

  2. Připojení Ssh odmítnuto zevnitř sítě Lan?

  3. Proč dlouhé zpoždění poté, co příkaz nebyl nalezen?

  1. Proč se skript Bash po spuštění neukončí?

  2. Jak obnovit/ukončit relaci Ssh po ztrátě připojení?

  3. Proč pr_debug linuxového jádra nedává žádný výstup?