Est-il possible d'attacher un terminal à un processus déjà en cours d'exécution en utilisant son PID d'une manière similaire à l'utilisation de la fg
commande pour les travaux?
command-line
process
Tommy
la source
la source
Réponses:
Vous pouvez obtenir les descripteurs de fichiers standard de ce processus, par exemple
stdout
:la source
# ls -la /proc/24510/fd/1 lrwx------ 1 root root 64 Oct 31 08:34 /proc/24510/fd/1 -> socket:[444026]
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 qui sont ajoutées à ce fichier en temps réel.Une autre option consiste à lancer votre programme à l'intérieur de
screen
, qui est une sorte d'application de terminal basée sur du texte. Les sessions d'écran peuvent être attachées et détachées, mais ne sont théoriquement destinées qu'à ê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
:-p PID
: Attachez-vous au processus avec l'ID de processus PID et commencez le traçage.-s SIZE
: Spécifiez la taille de chaîne maximale à imprimer (la valeur par défaut est 32).-o filename
: Écrivez la sortie de trace dans le nom de fichier plutôt que sur écran (stderr).la source
sudo
avec strace pour vous attacher à un processus et utiliser de-o ~/output.txt
sorte que le fichier soit laissé dans votre dossier de départ.Vous pouvez utiliser les commandes ci-dessous pour attacher un processus en cours sur un autre terminal:
retty
(Page de manuel : retty )reptyr
screen
Exemple:
la source
sudo apt-get install retty
mais il y a peu de limitations avec retty. Consultez la page de manuel mentionnée en réponse.