GNU/Linux >> Tutoriales Linux >  >> Linux

Redirigir strace al archivo

¿Alguna razón en particular por la que no puede usar el indicador -o?

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

Además, debe usar algún truco de expresiones regulares para no capturar su proceso grep en la lista de procesos.

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

También recuerda que en el caso específico de apache,

  1. Apache es (generalmente) multiproceso, ¿quiere obtener el padre o uno de los hijos? Agregaría el indicador '-f' a strace, que (entre otras cosas) inserta el PID en la salida.
  2. Puede obtener el ID de proceso del proceso principal principal del archivo PID.

    p.ej. strace -o /tmp//trace.txt -f $(

Entonces, esa es la pregunta que estás haciendo... pero ¿qué estás tratando de hacer? ¿Depurar al iniciar? rastrear un proceso secundario que atiende una solicitud? También mire el indicador -X para apache.


En general, strace "se puede redirigir a un archivo", pero escribe su salida en stderr (mezclándolo con el stderr del programa), por lo que sería como

strace progname 2>my_strace_output

Si desea que "toda la salida" vaya a un archivo:

strace progname 1>my_strace_output 2>&1

si quieres ser capaz de "grep":

strace progname 2>&1 | grep ...

sin embargo, tenga en cuenta que si hace grep y lo envía a un archivo, se produce mucho almacenamiento en búfer:https://unix.stackexchange.com/questions/338330/grepping-strace-output-gets-hard


Linux
  1. ¿Cómo redirigir la salida de un programa a un archivo zip?

  2. ¿Qué hace que Grep considere que un archivo es binario?

  3. ¿Cómo redirigir solo Stderr?

  4. ¿Leyendo patrones Grep de un archivo?

  5. Comando grep de Linux

Cómo redirigir stderr a stdout en Bash

Cómo encontrar una cadena en un archivo en Linux

¿Redirigir y canalizar la salida?

Grep ¿Cómo suprimir la visualización de archivos no coincidentes?

Cómo grep una sección de un archivo en bash Shell

¿Cómo redirijo un dominio a otro dominio localmente?