[unix] 어떤 프로세스가 실행 중인지 어떻게 알 수 있습니까?

Ubuntu Server 10.10을 사용하고 있으며 어떤 프로세스가 실행되고 있는지 확인하고 싶습니다. PostgreSQL이 내 컴퓨터에서 실행되고 있지만 topor ps명령으로 볼 수 없으므로 실행중인 모든 프로세스가 표시되지 않는다고 가정합니다. 실행중인 모든 프로세스를 표시하거나 다른 매개 변수가 top있거나 사용할 수있는 다른 명령 ps이 있습니까?



답변

로부터 ps매뉴얼 페이지

-e 모든 프로세스를 선택하십시오. -A와 동일

따라서 ps -e모든 프로세스가 표시됩니다. “나에게 모든 것을 줘”에 대한 일반적인 옵션은 ps -ely또는 ps aux입니다. 후자는 BSD 스타일입니다. 종종 사람들 grep은 xenoterracide의 답변에서와 같이 프로세스를 검색하기 위해이 출력을 파이프합니다 . grep출력에서 자체를 보지 않기 위해 종종 다음과 같은 것을 보게됩니다.

 ps -ef | grep [f]oo

여기서 foo는 찾고자하는 프로세스 이름입니다.

그러나 특정 프로세스를 찾고 있다면 사용 pgrep가능한 경우 명령을 사용하는 것이 좋습니다 . 우분투 서버에서 사용할 수 있다고 생각합니다. 사용하면 pgrep위에서 언급 한 경쟁 조건을 피할 수 있습니다. 또한 grep복제 하는 데 점점 더 복잡한 속임수 가 필요한 다른 기능도 제공 합니다. 구문은 간단합니다.

pgrep foo

여기서 foo는 찾고있는 프로세스입니다. 기본적으로 프로세스의 프로세스 ID (PID)를 찾으면 출력합니다. man pgrep다른 출력 옵션을 참조하십시오 . 다음 페이지가 매우 유용하다는 것을 알았습니다.

http://mywiki.wooledge.org/ProcessManagement


답변

당신은 시도 ps aux | grep postgres했습니까? postgres가 실행 중이면 실제로 표시되어야합니다. 그렇지 않은 경우 … postgres가 실행 중인지 어떻게 알 수 있습니까?

(참고 : 그것은 ps -aux옳지 만 틀린 일반적인 오해입니다. )


답변