C'est une question qui a été abordée plusieurs fois, non seulement ici, mais aussi dans d'autres sites du réseau d'échange de pile (par exemple, comment faire ssh pour tuer le processus distant lorsque j'interromps ssh lui-même? ). Cependant, je ne peux faire fonctionner aucune des solutions pour moi.
J'exécute une commande via ssh. Chaque fois que je quitte ssh, je veux que la commande meure également. Cette commande est un démon appelé ktserver qui s'exécute indéfiniment jusqu'à ce que vous appuyiez sur Ctrl-C.
Je l'exécute comme suit: ssh -t compute-0-1 ktserveret, en effet, lorsque j'appuie sur Ctrl-C, le processus se termine avec élégance et la session ssh se termine.
Cependant, si au lieu d'appuyer sur Ctrl-C, je tue le processus ssh à l'aide de la killcommande (par exemple, l'envoi de SIGINT ou SIGHUP), le ktserverprocessus reste vivant.
Comment puis-je rendre le ktservertoujours indépendant sur la façon dont sshest tué?
EDIT : Si, au lieu de ktserverlancer quelque chose de complètement différent, comme gedit, tout fonctionne comme un charme (c'est-à-dire que gedit meurt lorsque la connexion s'éteint). Par conséquent, il peut y avoir un problème avec le processus lui-même. Par exemple, j'ai pensé qu'il pourrait ignorer SIGHUP ou SIGINT. Cependant, lorsque j'exécute kill -1 ktserverou kill -2 ktserver, le processus se termine comme prévu.
EDIT2 : Comme le souligne Mark Plotnick, le problème est lié au fait qu'aucune communication ne circule sur le canal ssh. J'ai confirmé en exécutant ssh -t <host> readet en tuant le processus ssh par la suite. readétait toujours en vie et donnait des coups de pied.
ssh example.com dd ...travaux ont été exécutés jusqu'à la fin des heures, même après la sshconnexion, en raison de problèmes de réseau. Si vous pouvez modifier ktserverpour prendre une option pour sortir quelque chose de temps en temps, cela peut être une solution de contournement.
readsur l'ordinateur distant, et après avoir tué la connexion ssh , je ne suis readpas mort. Malheureusement, je ne peux pas changer ktserver pour afficher quoi que ce soit. Il n'y a donc pas de solution?
shopt -s huponexit). Pouvez-vous tester si cela fonctionne pour vous?
kill -9 ktserver?