ps -Af를 사용하여 프로세스 수 계산

ps -Af를 사용하여 프로세스 수 계산

ps -Af 명령을 사용하여 원격으로 사용 중인 컴퓨터의 emacs 프로세스 수를 계산해야 합니다. 어디서부터 시작해야 할까요?

답변1

ps -Af최선의 접근 방식은 아닙니다.

f옵션은 불필요하며 emacs라는 사용자의 경우는 말할 것도 없고 emacs가 아닌 프로세스가 emacs 또는 이를 매개 변수 중 하나로 포함하는 문자열을 사용하는 경우 거짓 긍정을 트리거할 수 있습니다.

다음과 같은 더 간단한 명령을 사용하는 것이 좋습니다.

pgrep emacs | wc -l

답변2

넌 할 수있어ps -C emacs --no-heading | wc -l

ps -C command명령 이름으로 프로세스 출력

편집: ps --help매우 흥미롭습니다

답변3

Hennes가 말했듯이 " ps -AF | grep emacs | wc -l"를 사용하여 이를 수행할 수 있습니다. 그러나 거기에도 자신만의 명령이 있을 것입니다. 이 명령을 제거하려면 " grep -v"(또는 --inverted-match)를 사용하여 계산하고 싶지 않은 명령을 필터링할 수 있습니다. 그러면 다음과 같이 보일 것입니다:ps -AF | grep emacs | grep -v grep | wc -l

답변4

첫 번째 원칙부터 시작하세요.

사용하라는 요청을 받은 명령이 정확히 무엇을 수행하는지, 그리고 지정된 옵션( -Af)이 어떻게 작동하는지 설정하는 것부터 시작하십시오. 이렇게 하려면 다음을 읽어보세요 man ps.

-A 모든 프로세스를 선택합니다.
-f 전체 형식 목록을 작성합니다. 이 옵션은 다른 많은 UNIX 스타일 옵션과 결합하여 추가 열을 추가할 수 있습니다.

따라서 시작점은 사용자를 위해 실행 중인 모든 프로세스의 출력이며 전체 형식으로 나열됩니다. 처리를 시도하기 전에 다음 명령을 실행하여 전체 출력을 확인하십시오.

ps -Af

프로세스 수를 계산하려면 emacs피팅 도구를 통해 출력을 파이프하여 출력을 처리하거나 해당 일치 항목을 계산해야 합니다. grep좋은 옵션이지만 효율성과 단순성을 위해 다음을 사용합니다 awk.

ps -Af | awk '/emacs/ && !/awk/ { a++ } END { print a }'

이는 패턴을 검색하고 /emacs/검색 자체의 패턴을 제외하고 !/awk/일치 항목을 증가시킨 { a++ }다음 총계를 인쇄합니다 { print a }.

이는 단일 파이프만 필요하며 검색 프로세스를 카운트에 반환하지 않는 문제를 우아하게 처리합니다.

관련 정보