GNU/Linux >> Tutoriels Linux >  >> Linux

Ssh – Comment renier un processus en cours d'exécution et l'associer à un nouveau shell d'écran ?

J'ai un programme en cours d'exécution sur un shell SSH. Je veux le mettre en pause et pouvoir réactiver son exécution à mon retour.

L'une des façons dont j'ai pensé à le faire était de transférer sa propriété à un shell d'écran, le maintenant ainsi en cours d'exécution.

Existe-t-il une autre façon de procéder ?

Réponse acceptée :

Vous pouvez révoquer la "propriété" du programme depuis le shell avec le disown intégré :

# press Ctrl+Z to suspend the program
bg
disown

Cependant, cela indique seulement au shell de ne pas envoyer de SIGHUP signal au programme lorsque le shell se termine. Le programme conservera toute connexion qu'il a avec le terminal, généralement sous forme de flux d'entrée, de sortie et d'erreur standard. Il n'y a aucun moyen de les rattacher à un autre terminal. (Screen fonctionne en émulant un terminal pour chaque fenêtre, de sorte que les programmes sont attachés à la fenêtre de l'écran.)

Il est possible de rattacher les descripteurs de fichier à un fichier différent en attachant le programme dans un débogueur (c'est-à-dire en utilisant ptrace ) et en le faisant appeler open , dup et close . Il existe quelques outils qui font cela; c'est un processus délicat, et parfois ils planteront le processus à la place. Les possibilités incluent (liens collectés à partir des réponses à Comment puis-je désavouer un processus en cours d'exécution et l'associer à un nouveau shell d'écran ? et Puis-je nohup/filtrer un processus déjà démarré ?) :

  • grab (et le cryopide plus ambitieux)
  • neercs
  • redirection
  • reptyre
  • rety

Linux
  1. 5 façons de maintenir les sessions et les processus SSH à distance en cours d'exécution après la déconnexion

  2. Comment autoriser SFTP et interdire SSH ?

  3. Comment redémarrer (ou réinitialiser) un processus en cours d'exécution sous Linux ?

  4. Comment répertorier les sessions d'écran en cours ?

  5. Comment savoir si j'exécute un shell imbriqué ?

Comment installer et utiliser Linux Screen ?

Principes de base de Linux :Comment créer et installer des clés SSH sur le shell

Comment trouver et tuer les processus en cours d'exécution sous Linux

Comment trouver l'ID de processus d'un programme et le tuer [Astuce rapide]

Comment installer et utiliser Nu Shell sous Linux

Comment écrire et exécuter un programme C sous Linux