UNIX 프로세스의 명령 행을 얻는 방법? 프로세스를 호출하는 데 사용

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



답변

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


답변

않습니다 :

~$ 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'

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

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