GNU/Linux >> Tutoriels Linux >  >> Linux

Rediriger strace vers le fichier

Une raison particulière pour laquelle vous ne pouvez pas utiliser le drapeau -o ?

ps auxw | grep sbin/apache | awk '{print " -p " $2}' | xargs strace -o /tmp/trace.txt

En outre, vous devez utiliser une astuce regex pour ne pas attraper votre processus grep dans la liste des processus.

ps auxw | grep 'sbin/[a]pache' ....

Rappelez-vous également que dans le cas spécifique d'Apache,

  1. Apache est (généralement) multiprocessus, voulez-vous obtenir le parent ou l'un des enfants ? J'ajouterais le drapeau '-f' à strace, qui (entre autres choses) insère le PID dans la sortie.
  2. Vous pouvez obtenir l'ID de processus du processus parent principal à partir du fichier PID.

    par exemple. strace -o /tmp//trace.txt -f $(

Donc, c'est la question que vous posez .. mais qu'essayez-vous de faire? Debug au démarrage ? tracer un processus enfant servant une requête ? Regardez aussi le drapeau -X pour apache.


En général, strace "peut être redirigé vers un fichier" mais il écrit sa sortie sur stderr (en le mélangeant avec le stderr du programme), donc ce serait comme

strace progname 2>my_strace_output

Si vous voulez que "toutes les sorties" aillent dans un fichier :

strace progname 1>my_strace_output 2>&1

si vous voulez pouvoir le "grep":

strace progname 2>&1 | grep ...

cependant, sachez que si vous grep et l'envoyez dans un fichier, de nombreuses mises en mémoire tampon se produisent :https://unix.stackexchange.com/questions/338330/grepping-strace-output-gets-hard


Linux
  1. Comment rediriger uniquement Stderr ?

  2. Rediriger et canaliser la sortie ?

  3. Grep Comment supprimer l'affichage d'un fichier non correspondant ?

  4. Commande grep Linux

  5. Comment "grep" un flux continu ?

Comment rediriger stderr vers stdout dans Bash

Comment trouver une chaîne dans un fichier sous Linux

Comment rediriger la sortie d'un programme vers un fichier Zip ? ?

Qu'est-ce qui fait que Grep considère qu'un fichier est binaire ?

Lire des modèles Grep à partir d'un fichier ?

Comment rediriger la sortie de system() vers un fichier ?