Frage

Ich versuche zu erkennen, wenn ein bestimmter Prozess ausgeführt wird, basierend auf seiner Argumente, auf Mac OS X. Es gibt mehrere Prozesse sein können mit dem gleichen Namen laufen, sondern nur, dass man die Argumente haben ich suche. Die Prozesse werden nicht durch den gleichen Benutzer gehören, der mein Code ausgeführt wird. Sie werden nicht ihre argv in irgendeiner Weise geändert haben.

Die ‚ps‘ Befehl zeigt genau die Informationen, die ich brauche. Aber ich würde es vorziehen, nicht stark zu laichen ‚ps‘ zu haben, und seinen Ausgang analysieren.

Ich habe versucht, die ursprünglich die Lösung von diese Frage , sysctl verwenden, aber es stellt sich heraus, dass für Prozesse funktioniert nur Sie besitzen; finden Sie unter für weitere Informationen href="https://stackoverflow.com/questions/2567510/why-is-sysctl-producing-e-inval-on-mac-os-x">.

Wie erhalten wird ps Argv Informationen für die anderen Benutzern gehören Prozesse?

War es hilfreich?

Lösung

Unter Mac OS X ps 0 setuid, das ist, wie es die Informationen für alle Prozesse wird. Sie müssen als root ausführen, dass die Informationen zu bekommen, also entweder müssen Sie mit sudo setuid- 0 oder führen Sie Ihren Nutzen sein.

Der beste Weg ist wahrscheinlich nur zu laichen ps und die Ausgabe zu analysieren, auch wenn Sie nicht wirklich wollen;)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top