Y a-t-il 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
De plus, vous devriez 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,
- Apache est (généralement) multiprocessus, voulez-vous obtenir le parent ou l'un des enfants ? J'ajouterais l'option '-f' à strace, qui (entre autres choses) insère le PID dans la sortie.
-
Vous pouvez obtenir l'ID du processus principal parent à partir du fichier PID.
Par exemple, strace -o /tmp//trace.txt -f $(< /path/to/apache.pid)
Donc, c'est la question que vous posez mais qu'essayez-vous de faire ? Déboguer au démarrage ? Tracer un processus enfant servant une requête ? Regardez aussi le drapeau -X d'Apache.