Appuyez simplement Ctrl+Ddeux fois au lieu de Alt-F4ou Ctrl-Q, cela envoie le signal de sortie à votre ssh actuel, puis à votre shell, et l'émulateur de terminal devrait se fermer automatiquement sans shell. Problème résolu.
Profpatsch
@Profpatsch: à moins, bien sûr, vous utilisez IGNOREEOF(en bash) parce que vous utilisez également un multiplexeur terminal et suis fatigué de mistyping parfois ^a dque ^d, quittant ainsi sans le vouloir.
0xC0000022L
Réponses:
28
Pas du tout. À la fin du processus de terminal, les processus client à l'intérieur mourront également, et lorsque cela se produira, la connexion au serveur distant sera fermée par le système d'exploitation. Le serveur verra la connexion se fermer et terminera les processus sur le serveur.
Cependant, il est possible que vous vous retrouviez avec des processus persistants sur le serveur s'ils étaient en arrière-plan et ignorent certains signaux.
Lorsque nous fermons directement le terminal, il génère un signal SIGHUP. Ce signal tue toutes les tâches / processus sous le terminal automatiquement / instantanément. Donc pas de problème.
Ce n'est peut-être pas vrai. Si bash exécute une boucle, il peut ignorer SIGHUP et continuer la session. J'essaie actuellement de comprendre pourquoi cela se produit.
De plus, le processus d'arrêt est très bien noté ici, mais apparemment Systemd a changé certains comportements.
Il serait préférable que vous validiez votre demande avant de répondre, plutôt que de répondre par "cela peut ne pas être vrai".
Kusalananda
Eh bien, tout dépend. Il semble être différent entre: * les paramètres système Init * les paramètres Shell * les processus en cours d'exécution dans le terminal et leur gestion du signal
Ctrl+D
deux fois au lieu deAlt-F4
ouCtrl-Q
, cela envoie le signal de sortie à votre ssh actuel, puis à votre shell, et l'émulateur de terminal devrait se fermer automatiquement sans shell. Problème résolu.IGNOREEOF
(enbash
) parce que vous utilisez également un multiplexeur terminal et suis fatigué de mistyping parfois^a d
que^d
, quittant ainsi sans le vouloir.Réponses:
Pas du tout. À la fin du processus de terminal, les processus client à l'intérieur mourront également, et lorsque cela se produira, la connexion au serveur distant sera fermée par le système d'exploitation. Le serveur verra la connexion se fermer et terminera les processus sur le serveur.
Cependant, il est possible que vous vous retrouviez avec des processus persistants sur le serveur s'ils étaient en arrière-plan et ignorent certains signaux.
la source
Lorsque nous fermons directement le terminal, il génère un signal SIGHUP. Ce signal tue toutes les tâches / processus sous le terminal automatiquement / instantanément. Donc pas de problème.
la source
Ce n'est peut-être pas vrai. Si bash exécute une boucle, il peut ignorer SIGHUP et continuer la session. J'essaie actuellement de comprendre pourquoi cela se produit.
De plus, le processus d'arrêt est très bien noté ici, mais apparemment Systemd a changé certains comportements.
/server/463366/does-getting-disconnected-from-an-ssh-session-kill-your-programs
la source