Можно ли получить командную строку, которая использовалась для вызова процесса в 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=Это то, что я использую, в любом случае ...