Cosa succede ai processi in esecuzione quando perdo una connessione remota a una * nix box?


16

Di tanto in tanto perdo la mia connessione SSH remota al mio VPS. Uso screenper processi di lunga durata, ma mi chiedo cosa succede ai processi che ho eseguito a parte quelli eseguiti all'interno di una screensessione se perdo la connessione alla scatola.

Quando ristabilisco una connessione al box, cosa è successo ai processi bash e sshd in esecuzione quando ho perso la connessione? Oggi ho perso ripetutamente la connessione e ho notato molti più processi bash e sshd del solito.

Se ci sono processi in giro, devo ucciderli? Come posso determinare quali processi sono stati abbandonati dalla mia sessione precedente?

Grazie per eventuali risposte!

Risposte:


8

Normalmente i processi si interromperanno al momento della disconnessione, ma le vecchie sessioni SSH potrebbero essere in attesa di timeout o potrebbero essersi bloccate all'uscita , a causa di una condizione di competizione.

Probabilmente dovresti interrompere le vecchie sessioni, anche se non è necessario. Digitare ps auxsulla console per elencare i processi, quindi kill PIDper ogni sessione ssh sospesa, dove PID è il PID (ID processo) per quella sessione. Le sessioni più vecchie e sospese dovrebbero avere PID inferiori rispetto alla tua nuova sessione corrente.

Se esiste un processo a esecuzione prolungata che si desidera continuare a eseguire anche dopo la disconnessione, è possibile aggiungere il prefisso al comando senza nohup:

nohup badblocks -nvs /dev/sda &

0

Quando la sessione ssh muore, la pseudo-tty associata viene chiusa e ripristinata. In genere la shell e altri processi associati a quel tty vengono uccisi, in quanto sono processi figlio del processo che lo ha creato. Se ci sono processi in giro, forse sono stati sottoposti a backgound? Sì, probabilmente dovrebbero essere uccisi - la pulizia è accanto alla pietà. Prendono alcune risorse - di solito non molto, ma possono sommarsi dopo un po '.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.