Est-il possible d'associer un terminal à un processus en cours d'exécution en utilisant son PID de la même manière que la commande fg
pour les travaux?
Vous pouvez obtenir les descripteurs de fichier standard de ce processus, par exemple. stdout
name__:
tail -f /proc/<pid>/fd/1
Il y a quelques options ici. L'une consiste à rediriger la sortie de la commande vers un fichier, puis à utiliser tail
pour afficher les nouvelles lignes ajoutées à ce fichier en temps réel.
Une autre option consiste à lancer votre programme dans screen
, qui est une sorte d'application de terminal textuelle. Les sessions écran peuvent être attachées et détachées, mais sont nominalement destinées à être utilisées par le même utilisateur, donc si vous souhaitez les partager entre utilisateurs.
Sinon, si vous le souhaitez, vous pouvez suivre le processus et voir ce qu'il fait avec strace
:
strace -e trace=open -p 22254 -s 80 -o output.txt
-p PID
: attachez-vous au processus avec l'ID de processus PID et commencez le traçage.-s SIZE
: spécifiez la taille maximale de la chaîne à imprimer (la valeur par défaut est 32).-o filename
: Ecrit la sortie de trace dans le fichier filename plutôt que dans screen (stderr).Vous pouvez utiliser les commandes ci-dessous pour attacher un processus en cours sur un autre terminal:
retty
(Page de manuel: retty )reptyr
name__screen
name__Exemple:
screen -S PID
retty $(pgrep PID)
reptyr PID