GNU/Linux >> Tutoriels Linux >  >> Linux

Attacher à une sortie de processus pour la visualisation

Je pense avoir une solution plus simple ici. Cherchez simplement un répertoire dont le nom correspond au PID recherché, sous le pseudo-système de fichiers accessible sous le /proc chemin. Donc, si vous avez un programme en cours d'exécution, dont l'ID est 1199, cd dedans :

$ cd /proc/1199

Recherchez ensuite le fd répertoire en dessous

$ cd fd

Ce fd répertoire contient les objets descripteurs de fichiers que votre programme utilise (0 :stdin, 1 :stdout, 2 :stderr) et juste tail -f celui dont vous avez besoin - dans ce cas, stdout):

$ tail -f 1

Je cherchais exactement la même chose et j'ai trouvé que vous pouviez faire :

strace -ewrite -p $PID

Ce n'est pas exactement ce dont vous aviez besoin, mais c'est assez proche.

J'ai essayé la sortie de redirection, mais cela n'a pas fonctionné pour moi. Peut-être parce que le processus écrivait sur un socket, je ne sais pas.


Pour moi, cela a fonctionné :

  1. Connectez-vous en tant que propriétaire du processus (même root se voit refuser l'autorisation)

    ~$ su - process_owner
    
  2. Suivez le descripteur de fichier comme mentionné dans de nombreuses autres réponses.

    ~$ tail -f /proc/<process-id>/fd/1 # (0: stdin, 1: stdout, 2: stderr)
    

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 à l'intérieur de "l'écran", qui est une sorte d'application Terminal basée sur du texte. Les sessions d'écran peuvent être attachées et détachées, mais elles ne sont théoriquement destinées qu'à être utilisées par le même utilisateur, donc si vous voulez les partager entre les utilisateurs, c'est très pénible.


Linux
  1. Comment créer un répertoire partagé pour tous les utilisateurs sous Linux

  2. 30 exercices de processus Linux pour les administrateurs système

  3. A quoi servent les inodes ?

  4. Coloriser la sortie de queue avec Sed ?

  5. Couleur différente pour la commande et la sortie

Créer un répertoire personnel pour un utilisateur existant sous Linux

Structure de répertoire Linux expliquée pour les débutants

Commandes pour la gestion des processus sous Linux

Coloriser la sortie de queue

Pas de page de manuel pour la commande cd

Comment chown répertoire pour plusieurs utilisateurs?