OS X에서 GNU ps를 사용할 수 있습니까?


18

를 통해 GNU coreutils설치할 수 있습니다 brew. 그러나 utils 에는 없습니다ps . psOS X에서 gnu 를 사용할 수 있습니까 ?

ps더 많은 옵션과 기능을 가지고 있기 때문에 GNU를 사용하고 싶습니다 .


OSX에서 실행 중이 ps거나 ps -ef터미널에서 시도 했습니까? 두 개의 다른 컴퓨터에서 수정하지 않고 OSX 10.7.5에서 작동합니다. / bin / ps에 있습니다
jammypeach

예, ps더 많은 옵션과 기능이 있기 때문에 GNU를 사용하고 싶었습니다 .
이상현

아 OK, 죄송합니다. 명시된 질문에서 그것을 깨닫지 못했습니다. 내가 그 곳을 포함 좋을 것, 다른 넣다 누군가는 저와 같은 생각 - 행운을 해결 찾는
jammypeach

제안 해 주셔서 감사합니다. 나는 그것에 대해 더 많은 설명을 추가했다.
이상현

답변:


22

휴대용 PS 프로그램이 없습니다. 리눅스에서 사용할 수있는 ps 명령은 다른 사람들이 언급했듯이 "procps"패키지에 있습니다. 이것이 OSX로 이식 될 수없는 이유는 Linux와 OSX 커널이 같은 방식으로이 정보를 공개하지 않기 때문입니다. Linux는 / proc에서 의사 파일 시스템을 사용하는 반면 OSX는 sysctl 기능을 사용합니다. 다른 시스템은 메커니즘을 사용하지만 다른 형식으로 데이터를 제공하거나 ps와 같은 프로그램이 커널 메모리에서 직접 읽도록 요구할 수 있습니다.

일반적으로 ps 및 top과 같은 프로그램에서 프로세스 정보를 사용하는 방법에 대한 표준은 없습니다. 따라서 프로그램은 특정 운영 체제에 맞게 설계되어야합니다. OSX ps에서 특정 기능이 누락 된 경우,이를 수행 할 수있는 다른 프로그램을 찾거나 직접 작성하거나 ( sysctl 매뉴얼, 특히 KERN_PROC 를 시작점으로 보거나) 기존 ps를 수정해야 합니다. 기능을 추가하는 명령 입니다.

또는 ps 명령 자체의 출력을 구문 분석하여 필요한 것을 얻을 수 있으면 이식 가능한 프로그램을 작성할 수 있습니다. -o옵션이 포함 된 출력 은 특히 ​​여러 플랫폼에서 신뢰할 수 있습니다 (특히 UNIX 표준에 대한 UNIX 표준참조하는 경우) . 사용할 열 이름.


/proc파일 시스템이 프로세스 목록을 얻기 위해 Linux 커널이 제공하는 유일한 방법 입니까 , 아니면 해당 정보를 제공하는 별도의 시스템 호출이 있습니까?
Tanner Swett 16:15에

1
@TannerSwett 그렇게 생각하지 않습니다. / proc가 구현되기 전에 리눅스에서 ps 명령은 / dev / kmem과 / dev / swap에서 읽음으로써 작동했습니다.
Random832

9

아니요-존재하지 않기 때문입니다. 에 관해서는 아무 내장이없는 psGNU의에서 coreutils패키지를 참조 유닉스 및 리눅스 포럼에이 답변을.

Homebrew를 통해 사용할 수있는 가장 좋은 대체 공식은 psgrep다음과 같습니다.

psgrep는 멋진 유틸리티 grep (1) 을 사용하여 프로세스 목록 ( ps (1)에서 얻은)을 검색하는 작은 Bash 셸 스크립트입니다 .

즉, 여전히 psgrepOS X처럼 동작 하는 데 사용할 수 있습니다 ps. 예를 들면 다음과 같습니다.

   OPTIONS
   -a     Search the process list using BSD's "ps aux" format. This option
          includes all users' processes in the search.

   -b     Search the process list using BSD's "ps  ux"  format  (default).
          This option only includes the running user's processes.

pgrepbrew구문 상보다 가깝지만 다음 ps보다 효율 이 떨어지는를 통해 사용할 수도 있습니다 psgrep.

psgrep (1) 은 프로세스 목록을 검색하고 PID를 반환 할 수있을뿐만 아니라 UID, GID, 메모리 / CPU 사용량, niceness 및 기타 지원되는 것과 같은 더 유용한 정보를 제공 할 수 있기 때문에 pgrep (1) 보다 유용합니다. ps.에 의해


모든 것을 강조합니다.


2
pgrep뿐만 아니라 OS X의 최신 버전의 일부입니다
nohillside

@patrix 아! 좋은 지적, 확인 :type -a pgrep pgrep is /usr/local/bin/pgrep pgrep is /usr/bin/pgrep
njboot

여기 에서 언급했듯이 proctoolsMacPorts 또는 Homebrew 의 패키지가 제공 pgrep하며 pkill여기에 나타 났을 때 개인적으로 찾고 있던 것이 있습니다.
TheDudeAbides

3

psWikpedia 에 따르면 GNU coreutils의 일부가 아닙니다 . 내 Linux 배포판과 함께 제공되는 버전은 procps의 것으로 보이지만 homebrew에는 공식이없는 것 같습니다. pstree훌륭한 트리 뷰를 제공 할 수 있는 수식이 있으며 htop또 다른 훌륭한 프로세스 뷰어입니다.

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