¿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?


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.

¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.