UNIX 프로세스의 명령 행을 얻는 방법?


8

Mac OS X에서 프로세스를 호출하는 데 사용 된 명령 줄을 가져올 수 있습니까?


1
ps --pid $PID -o args=그건 ... 어쨌든, 무엇을 사용
yardena

2
해당 명령에 해당하는 Mac은 다음과 같습니다.ps -p <pid> -o args=
Nate

1
"-o args ="가 출력을 ps -p <pid> -o command=
Jose Alban

답변:


11

ps ax실행중인 모든 프로세스의 명령 줄을 보여줍니다. 당신은 당신이 원하는 pid를 grep 수 있습니다.


@ mark4o 또는 간단히 ps awux | ps -w는 cat이 다른 출력으로 파이프 될 때와 같이 출력이 stdout이 아닌 경우 표시 할 열 수를 제한하지 않습니다.
jtimberman

1
왜 매주 이런 일이 발생합니까? "경고 : 잘못된 ps 구문, 아마도 가짜 '-'? procps.sf.net/faq.html 참조 "및 "ps -aux"는 "ps aux"와 다릅니다. POSIX 및 UNIX 표준에는 " ps -aux "-a 옵션으로 선택된 모든 프로세스를 인쇄 할뿐만 아니라"x "라는 사용자가 소유 한 모든 프로세스를 인쇄합니다."x "라는 사용자가 존재하지 않으면이 ps는 명령을 다음과 같이 해석 할 수 있습니다. "ps aux"대신 경고를 인쇄합니다.이 동작은 오래된 스크립트와 습관을 전환하는 데 도움을주기위한 것입니다. 이는 깨지기 쉽고 변경 될 수 있으므로 의존해서는 안됩니다. "
Hello71

모르겠다, Hello71. 나는 당신을 위해 2 살짜리 답을 고쳤다.
Bkkbrad

4

않습니다 :

~$ 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가 사용한 것을 확인하는 데 사용합니다).


2

cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'

리눅스마다 다르지만 $PROCESSNUMBER커널 ( /proc/$PROCESSNUMBER/cmdline부분) 에서 번호가 매겨진 프로세스의 명령 행을 가져 와서 tr -token\ 0을 개행 (\ n)으로 바꾸어 (대체로) 각 인수를 별도의 줄에 두어 읽을 수있게합니다 .

이 행 ps -ef은 $ PROCESSNUMBER 부분 에 실행중인 프로세스의 실제 프로세스 번호 (명령을 실행하여 찾을 수 있음)를 넣은 경우에만 작동합니다 !


3
원래 포스터는 Mac OS X를 요청했습니다. (제공되지 않는 procfs)
Andre Holzner

2
또는xargs -0 < /proc/PID/cmdline
Bash
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.