Ist es möglich, die Befehlszeile abzurufen, mit der ein Prozess unter Mac OS X aufgerufen wurde?
ps -p <pid> -o args=
ps -p <pid> -o command=
Ist es möglich, die Befehlszeile abzurufen, mit der ein Prozess unter Mac OS X aufgerufen wurde?
ps -p <pid> -o args=
ps -p <pid> -o command=
Antworten:
ps ax
zeigt Ihnen die Befehlszeile aller laufenden Prozesse; Sie können nach der gewünschten PID suchen.
Tut:
~$ ps ax | grep "ntp"
57 ?? Ss 0:04.66 /usr/sbin/ntpd -c /private/etc/ntp.conf -n
3104 s000 S+ 0:00.00 grep ntp
tun, was Sie brauchen (ändern Sie ntp zu dem Programm, an dem Sie interessiert sind)? Dies gibt mir normalerweise die Befehlszeilenargumente zum Ausführen von Prozessen (ich überprüfe, was Launchd beispielsweise beim Ausführen eines Systemdämons verwendet hat).
cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'
Obwohl es Linux-spezifisch ist, erhält es die Befehlszeile des Prozesses $PROCESSNUMBER
direkt vom Kernel (dem /proc/$PROCESSNUMBER/cmdline
Teil) und macht ihn lesbar, indem jedes Argument in eine separate Zeile gesetzt wird, indem tr -token
die \ 0 in Zeilenumbrüche (\ n) übersetzt (mit Ersetzen) werden.
Diese Zeile funktioniert nur, wenn Sie eine echte Prozessnummer eines laufenden Prozesses (Sie können eine finden, indem Sie den Befehl ps -ef
ausführen) in den Teil $ PROCESSNUMBER einfügen!
procfs
)
xargs -0 < /proc/PID/cmdline
ps --pid $PID -o args=
Das ist es, was ich sowieso