Si a mv
été démarré comme:
ssh host mv x y
Puis mv
recevra un SIGPIPE (et mourra) s'il essaie d'écrire quoi que ce soit sur stdout ou stderr (comme un message d'erreur).
Si vous avez commencé une session interactive comme:
ssh host
Et a commencé à mv
partir du shell interactif là-bas, lorsque le côté maître du pseudo-terminal démarré par sshd
sera fermé (à la ssh
fermeture de la connexion TCP à la sortie), le chef de la session associée au côté esclave du pseudo-terminal, qui est le shell interactif distant, recevra un signal SIGHUP (raccrocher).
À la réception de ce signal, les shells (sauf si vous en avez émis un trap '' HUP
) transmettent généralement ce signal à tous les processus dans les tâches qu'ils ont démarrées, sauf si vous leur avez explicitement dit de ne pas le faire (comme avec disown
ou avec &|
dans certains shells).
D'autres processus (comme mv
) mourront généralement lors de la réception de ce signal, sauf si on leur a dit de l'ignorer (en l'utilisant nohup
ou si leur parent l'a ignoré).
Si vous avez émis un:
trap '' HUP
Ensuite, tous les travaux ont commencé après qu'il en héritera et ignorera SIGHUP.
Le shell ne mourra pas du signal SIGHUP envoyé lors de la déconnexion mais se fermera à l'invite suivante, car son stdin est parti. À la sortie, certains obus envoient SIGHUP à leurs emplois (non reniés). Ceux qui ont commencé après l' trap '' HUP
ignoreront, les autres mourront.
En bref, dans ce cas, à moins que vous n'ayez pris des précautions préalables pour que cela ne se produise pas, vous mv
mourrez.
Pour éviter cela la prochaine fois, si vous utilisez tcsh
, zsh
ou bash
, avant d'arrêter la machine, appuyez sur Ctrl-Zpour suspendre mv
, entrez bg
pour la reprendre en arrière-plan et disown
pour la désactiver .
Ou vous pouvez utiliser screen
ou tmux
. Lors d'un SIGHUP, ceux-ci se détacheront simplement de leur terminal hôte maintenant disparu, mais les applications exécutées dans le terminal qu'il émule continueront de fonctionner sans tête et vous pouvez rattacher la session à un autre terminal plus tard pour voir comment cela mv
s'est passé.
Ou utilisez-le nohup mv
pour vous mv
immuniser contre SIGHUP et voir sa sortie et ses erreurs aller dans un nohup.out
fichier que vous pourrez vérifier plus tard.
Maintenant, je ne connais pas votre fournisseur d'hébergement spécifique, mais avec certains, lorsque vous entrez ssh
dans l'instance, vous ne démarrez pas de sessions shell là-bas, mais vous vous attachez plutôt à la console, c'est-à-dire à une session qui a déjà été démarrée et lorsque vous quittez, vous ne mettez pas fin à cette session, il vous suffit de vous en détacher. Ainsi, l'obus n'est pas tué, non plus mv
. Si tel est le cas, vous remarquerez que l' ps
exécution à partir de là vous donnera la même chose pid
pour votre shell sur deux ssh
sessions distinctes .