특정 사용자를 제외하여 Linux pgrep

특정 사용자를 제외하여 Linux pgrep

pgrep일부 Java 응용 프로그램을 모니터링하기 위해 쉘 스크립트에서 명령을 사용하고 있습니다. 하지만 Java의 지속적인 서비스로 인해 내 코드에 문제가 발생했습니다. 프로세스가 다른 사용자에게 속해 있습니다. 그렇다면 grep을 사용할 때 특정 사용자의 프로세스를 제외할 수 있는 방법이 있습니까?

현재 사용 중인 스크립트 줄은 다음과 같습니다.

pgrep java

특정 사용자에 대한 프로세스를 제외해야 합니다. 이 스크립트를 수정하고 출력을 얻을 수 있도록 도와주세요. 저는 솔라리스를 사용하고 있습니다.

답변1

사용정규식AND -u또는 -U옵션:

-u euid,...
    Only match processes whose effective user ID is listed. Either the 
    numerical or symbolical value may be used.
-U uid,...
    Only match processes whose real user ID is listed. Either the numerical 
    or symbolical value may be used.

따라서 다음을 시도해 보십시오.

pgrep -u youruser java

사용자가 소유한 java라는 이름의 모든 프로세스가 나열됩니다.

사용자를 제외하려면 다음을 수행할 수 있습니다.

grep -vxf <(pgrep -u exclude_user java) <(pgrep java)

관련 정보