GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi le Wget n'est-il pas mort après une perte de connexion SSH ?

Je ssh envoyé à mon serveur et exécuté wget -r -np zzz.aaa/bbb/ccc et ça a commencé à fonctionner. Ensuite, ma connexion Internet (chez moi) a été interrompue et je me suis inquiété en supposant que wget a été hup ped parce que le ssh la connexion a été perdue et donc le terminal est mort. Mais ensuite j'ai ssh ed à mon serveur et s'est rendu compte qu'il était toujours en cours d'exécution et mettait la sortie dans wget.log et télécharger des trucs. Quelqu'un peut-il m'expliquer ce qui aurait pu se passer ici ?

C'est ce que ps me donne :

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

À quoi ça sert (point d'interrogation) ? signifie dans la colonne de tty ?

Réponse acceptée :

Les programmes (et les scripts) peuvent choisir d'ignorer la plupart des signaux, à l'exception de quelques-uns comme KILL . Le HUP le signal peut être intercepté et ignoré si le logiciel le souhaite.

Ceci provient de src/main.c du wget sources (version 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.  */

Un peu plus bas, le gestionnaire de signal est installé :

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

Il ressemble donc à wget n'ignore le HUP signal, mais il choisit de continuer le traitement avec sa sortie redirigée vers le fichier journal.

Demandé en commentaires :La signification du ? dans le TTY colonne de la sortie de ps dans la question est que le wget le processus n'est plus associé à un terminal/TTY. Le TTY a disparu lorsque la connexion SSH a été interrompue.


Linux
  1. Pourquoi 'sshpass' n'est pas le bon moyen d'automatiser les transferts de fichiers sous Linux

  2. Pourquoi le serveur a-t-il bloqué mon IP ?

  3. Pourquoi le Pgid des processus enfants n'est-il pas le PID du parent ?

  4. Connexion SSH refusée depuis l'intérieur du LAN ?

  5. Pourquoi `md5sum` ne donne-t-il pas le même hachage qu'Internet ?

Pourquoi ne pas installer des progiciels à partir d'Internet

Pourquoi je ne peux pas exporter l'affichage Linux ?

Pourquoi wget'ing une image me donne-t-il un fichier, pas une image ?

Pourquoi rsync sur SSH me donne-t-il 10 fois le débit de SCP ?

SSH continue de se déconnecter après quelques minutes d'inactivité

SSH - Comment inclure la commande -t dans le fichier ~/.ssh/config