Ist es möglich, die Befehlszeile abzurufen, mit der ein Prozess unter Mac OS X aufgerufen wurde?
mac
command-line
unix
process
user7656
quelle
quelle
ps --pid $PID -o args=
Das ist es, was ich sowiesops -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.quelle
Tut:
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).
quelle
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, indemtr -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!quelle
procfs
)xargs -0 < /proc/PID/cmdline