¿Cómo puedo redirigir la salida de OS X dtruss cuando ejecuto sudo?

9

Estoy corriendo dtrussen Mac OS X 10.9. Un ejemplo simple es:

sudo -c ls

Pero me gustaría capturar la dtrusssalida en un archivo. Vi algo que sugiere que puedo hacer algo como:

sudo bash -c 'dtruss -c ls >x'

pero cuando hago esto, la salida de dtrusstodavía va a la terminal y la lista de archivos lsse redirige al archivo.

¿Cómo puedo redirigir la salida dtrussa un archivo?

Chris Markle
fuente
1
dtruss probablemente escribe en stderrlugar de stdoutbruja es lo que >xcaptura. Esta pregunta explica qué hacer: Linux menos comportamiento y stderr
Nifle

Respuestas:

9

Lo he estado ejecutando así:

sudo dtruss -f -p 12345 2> /tmp/trace.txt
  • -f dice que siga los procesos secundarios.
  • -p especifica qué ID de proceso rastrear.
  • 12345es un marcador de posición para una ID de proceso. Puedes obtener eso mirando topo ps -A.
  • 2>canaliza el error estándar en el archivo de salida. Por alguna razón, dtruss genera todo en stderr.
Luke Quinane
fuente
¿Podrías ampliar tu respuesta para explicar qué hace esto? Gracias.
Fixer1234
'-f' dice seguir procesos secundarios, '-p' especifica qué ID de proceso rastrear, '2>' canaliza el error estándar en el archivo de salida. Por alguna razón, dtruss genera todo en stderr.
Luke Quinane
¿12345 es un marcador de posición para la ID del proceso (y de dónde vendría eso)?
Fixer1234
Es un marcador de posición para una ID de proceso. Puedes obtener eso mirando topo ps -A.
Luke Quinane