Чи можливо схопити командний рядок, який використовувався для виклику процесу в 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
показує командний рядок усіх запущених процесів; Ви можете похвалитись за потрібний вам підпис.
Чи:
~$ 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=
Ось чим я користуюся, все одно ...