Wie kann man die PID eines Prozesses mit mDNSResponder verfolgen?

0

Ich suche den richtigen Weg, um zu identifizieren, welche PID / Prozess an mDNSResponder fragen, um DNS-Abfrage zu lösen.

Mit anderen Worten, ich möchte herausfinden, welcher Prozess welche DNS-Abfrage durch mDNSResponder ausführt und in irgendeiner Weise korreliert.

In einem anderen Begriff möchte ich wieder die PID jeder DNS-Abfrage durch mDNSResponder wissen.

Gibt es einen Systemadministrator Ansatz, um es zu tun, oder ich habe nur einen Programmierer Weg und so muss ich mDNSResponder patchen?

boos
quelle

Antworten:

1

Führen Sie Folgendes aus, um die mDNSResponder-Protokollierung zu aktivieren

sudo killall -USR1 mDNSResponder  # enable Warning and Notice log level
sudo syslog -c mDNSResponder -w   # enable syslog logging for warning messages

gefolgt von grep DNSServiceQueryRecord /var/log/system.log um alle DNS-Abfragen zu sehen:

Aug 28 19:20:11 Fourecks.local mDNSResponder[53]:  25: DNSServiceQueryRecord(api.droplr.com., AAAA) STOP PID[18](configd)

Die PID am Ende (18 im obigen Beispiel) ist die PID für configd, die in diesem Fall die Adressauflösung angefordert hat.

Wenn Sie die Protokollierung aktivieren, werden viele Einträge in generiert system.log Daher ist es wahrscheinlich eine gute Idee, es nur bei Bedarf zu verwenden. Um es wieder auszuschalten, führen Sie es einfach erneut aus sudo killall -USR1 mDNSResponder.

nohillside
quelle
Ich weiß, dass aber in der ausführlichen Protokollnachricht nicht die PID des Prozesses steht, der den Aufruf ausgeführt hat, sondern nur die numerische Benutzer-ID, die dies bewirkt. trotzdem danke.
boos
Ich bin mir ziemlich sicher, dass ich heute Abend nachsehen werde, wenn ich wieder zu Hause bin. Welche OS X-Version verwenden Sie?
nohillside
Ich verwende Mac OS X 10.7.2
boos
Ah, die Ausgabe könnte dort anders sein (ich bin auf 10.8). Wie funktioniert das Ergebnis der grep in meiner antwort schau mal in 10.7?
nohillside
Keine PID-Information! pastebin.com/pzxr5n59
boos