Comment puis-je "attacher" un console/terminal à la sortie d'une d'une application pour que je puisse voir ce qu'elle ce qu'elle dit ?
A propos de cette question, je sais qu'il est possible de récupérer la sortie, même si vous n'avez pas lancé la commande sceen avant de lancer le processus.
Bien que je n'aie jamais essayé, j'ai trouvé un article intéressant qui explique comment le faire en utilisant GDB (et sans redémarrer votre processus).
redirection de la sortie d'un processus en cours d'exécution
En principe :
- Consultez la liste des fichiers ouverts pour votre processus, grâce à /proc/xxx/fd
-
Joindre votre processus avec GDB
- Pendant qu'il est en pause, fermez le fichier qui vous intéresse en appelant fermer() (vous pouvez utiliser n'importe quelle fonction de votre processus dans GDB. Je soupçonne que vous avez besoin de symboles de débogage dans votre processus )
- Ouvrez un nouveau fichier en appelant le créer() ou la fonction open(). (Jetez un coup d'oeil aux commentaires à la fin, vous verrez que des personnes suggèrent d'utiliser dup2() pour s'assurer que la même poignée sera utilisée)
-
Détacher le processus et le laisser se dérouler.
D'ailleurs, si vous utilisez un système d'exploitation linux sur une machine i386, les commentaires parlent d'un meilleur outil pour rediriger la sortie vers une nouvelle console : Retty . Si c'est le cas, envisagez son utilisation.