GNU/Linux >> Tutoriels Linux >  >> Linux

Comment attacher un terminal à un processus détaché ?

Oui c'est le cas. Tout d'abord, créez un canal :mkfifo /tmp/fifo .Utilisez gdb pour attacher au processus :gdb -p PID

Fermez ensuite stdin :call close (0); et rouvrez-le :call open ("/tmp/fifo", 0600)

Enfin, écrivez (depuis un autre terminal, car gdb se bloquera probablement) :

echo blah > /tmp/fifo


Lorsque le terminal d'origine n'est plus accessible...

reptyr peut être ce que vous voulez, voir https://serverfault.com/a/284795/187998

Citation à partir de là :

Jetez un oeil à reptyr, qui fait exactement cela. La page github contient toutes les informations.

reptyr - Un outil pour "re-ptyer" les programmes.

reptyr est un utilitaire permettant de prendre un programme en cours d'exécution et de l'attacher à un nouveau terminal. Vous avez commencé le processus en cours d'exécution sur ssh, mais vous devez partir et vous ne voulez pas l'interrompre ? Démarrez simplement un écran, utilisez eptyr pour le saisir, puis fermez la session ssh et rentrez chez vous.

UTILISATION

Reptyr PID

"reptyr PID" saisira le processus avec l'identifiant PID et l'attachera à votre terminal actuel.

Après l'attachement, le processus prendra l'entrée et écrira la sortie sur le nouveau terminal, y compris ^ C et ^ Z. (Malheureusement, si vous l'exécutez en arrière-plan, vous devrez toujours exécuter "bg" ou "fg" dans l'ancien terminal. impossible de réparer de manière raisonnable sans patcher votre shell.)


Je suis sûr que vous ne pouvez pas.

Vérifier avec ps x . Si un processus a un ? en tant que tty contrôlant , vous ne pouvez plus lui envoyer d'entrées.

9942 ?        S      0:00 tail -F /var/log/messages
9947 pts/1    S      0:00 tail -F /var/log/messages

Dans cet exemple, vous pouvez envoyer une entrée à 9947 faire quelque chose comme echo "test" > /dev/pts/1 . L'autre processus (9942 ) n'est pas joignable.

La prochaine fois, vous pourriez utiliser screen ou tmux pour éviter cette situation.


Linux
  1. Comment exécuter une commande qui survivra à la fermeture du terminal ?

  2. Comment exécuter le processus Rsync en arrière-plan

  3. Comment vérifier HZ dans le terminal?

  4. Comment tuer le processus zombie

  5. Comment identifier le port d'un processus ?

Comment utiliser le terminal Linux dans Android

Comment utiliser Instagram dans le terminal

Comment ouvrir une fenêtre de terminal Linux

Comment travailler avec le processus de premier plan et d'arrière-plan sous Linux

Comment tuer un processus sous Linux

Comment ouvrir un PDF dans un terminal Linux