Можно ли получить командную строку, которая использовалась для вызова процесса в Mac OS X?
3 ответа
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!