Come posso reindirizzare l'output dtruss di OS X durante l'esecuzione con sudo?


9

Sono in esecuzione dtrusssu Mac OS X 10.9. Un semplice esempio è:

sudo -c ls

Ma vorrei catturare l' dtrussoutput in un file. Ho visto qualcosa che suggerisce che posso fare qualcosa del tipo:

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

ma quando lo faccio, l'output di dtrussva ancora al terminale e l'elenco dei file lsviene reindirizzato al file.

Come posso reindirizzare l'output di dtrussun file?


1
dtruss probabilmente scrive stderrinvece che la stdoutstrega è ciò che >xcattura. Questa domanda spiega cosa fare: Linux meno comportamento e stderr
Nifle

Risposte:


9

L'ho eseguito in questo modo:

sudo dtruss -f -p 12345 2> /tmp/trace.txt
  • -f dice di seguire i processi figlio.
  • -p specifica quale ID processo tracciare.
  • 12345è un segnaposto per un ID processo. Potresti ottenerlo guardando topo ps -A.
  • 2>pipe errore standard nel file di output. Per qualche ragione dtruss produce tutto su stderr.

Potresti espandere la tua risposta per spiegare cosa fa questo? Grazie.
fixer1234

'-f' dice di seguire i processi figlio, '-p' specifica quale ID processo tracciare, '2>' riporta l'errore standard nel file di output. Per qualche ragione dtruss produce tutto su stderr.
Luke Quinane,

12345 è un segnaposto per l'ID processo (e da dove proviene)?
fixer1234

È un segnaposto per un ID processo. Potresti ottenerlo guardando topo ps -A.
Luke Quinane,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.