[processus] récupérer les entrées sorties

batmat Messages postés 1871 Statut Membre -  
 Moussakaz -
Slt tout le monde ! :)

Une tite question : est ce que qqn sait comment faire pour se brancher sur la sortie std (erreur ou normale) d'un procesus ?

Bien sur, je suppute qu'il faut au moins posséder celui-ci ou être root...

Je pense à une fonction du genre dup() ... Mais je ne vois pas comment l'utiliser sur un processus déjà lancé.

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?

4 réponses

coppernix Messages postés 63 Statut Membre 4
 
Salut,
Pour se brancher sur la sortie d'un processus, il suffit que celui-ci soit lancé avec les redirections.
"> fichier" pour la sortie standard
"2> fichier" pour la sortie erreur
exemple : processus >/tmp/std.txt 2>/tmp/err.txt
0
batmat Messages postés 1871 Statut Membre 114
 
Désolé, ma question n'était pas assez claire : je veux récupérer cette sortie après l'avoir lancé :-) Ce qui est bien entendu plus compliqué...

En gros, je voudrais pouvoir récupérer les affichages envoyés sur stderr de n'importe quel processus en cours (listé avec ps aux)... Depuis en général un autre terminal que celui sur lequel a été lancé le programme.

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
0
batmat Messages postés 1871 Statut Membre 114
 
Ok, c bon j'ai trouvé : dans /proc/<pid>/fd

Ya tous les desripteurs de fichiers ouverts :)

Donc c très simple, genre si je veux voir la sortie erreur du processus 1243, je fais

tail -f /proc/1243/fd/2

@++

Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ?
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
J'allais le dire! :-)

C'est marrant ça... je connais pas mal le system de fichier /proc/, mais quand j'ai lu ta question hier ca ne m'as pas effleuré une seule seconde d'aller jeter un oeil dedans :-(
Va falloir que je me replonge dedans à nouveau!

@++

"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"
0
Moussakaz
 
Salut salut, dans la même veine, une question... Y'a-t-il moyen de se brancher sur la sortie d'un shell ?
Exemple :
J'ai ma machine devant les yeux, je lance sur le TTY1 un script qui va mouliner pendant 3 H, faire des includes dans tous les sens et executer plein de trucs et de machins (donc, difficile de suivre les processus)...

Si je coupe l'écran... Comment pourrais-je récupérer la sortie du shell en cours depuis un accès SSH ?

(c'est peut être pas super clair comme question, je ne suis pas sûr d'employer les bons termes... Mais si vous avez compris l'idée, la solution m'intéresse beaucoup).
0