Можно ли получить командную строку, которая использовалась для вызова процесса в Mac OS X?
ps -p <pid> -o args=
ps -p <pid> -o command=
Можно ли получить командную строку, которая использовалась для вызова процесса в Mac OS X?
ps -p <pid> -o args=
ps -p <pid> -o command=
Ответы:
ps ax
показывает командную строку всех запущенных процессов; Вы можете найти нужный pid.
Имеет:
~$ 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
делать то, что вам нужно (сменить ntp на интересующую вас программу)? Это обычно дает мне аргументы командной строки запущенных процессов (я использую, чтобы проверить, что Launchd использовал, например, при запуске системного демона).
cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'
Несмотря на то, что он специфичен для Linux, он получает командную строку процесса, пронумерованную $PROCESSNUMBER
прямо из ядра ( /proc/$PROCESSNUMBER/cmdline
части), и делает его читаемым, помещая каждый аргумент в отдельную строку, переводя (с tr -token
заменой) \ 0 в новые строки (\ n).
Эта строка работает, только если вы поместили реальный номер процесса запущенного процесса (вы можете найти его, запустив команду ps -ef
) в части $ PROCESSNUMBER!
procfs
)
xargs -0 < /proc/PID/cmdline
ps --pid $PID -o args=
Это то, что я использую, в любом случае ...