"COMMAND" 열을 기준으로 "ps fp" 출력을 필터링하려면 어떻게 해야 합니까?

"COMMAND" 열을 기준으로 "ps fp" 출력을 필터링하려면 어떻게 해야 합니까?

나는 가지고있다

pgrep -U herman | xargs --no-run-if-empty ps fp

COMMAND하지만 검색을 통해 열별로 추가로 필터링 하고 싶습니다.sh scriptName.sh Argument1

답변1

pgrep당신을 위해하는 것이 더 쉬울 수도 있습니다.

pgrep -U herman -f "sh scriptName.sh Argument1"

상황이 그보다 더 복잡하다면 숫자 pgrep패스를 직접 사용하여 /proc를 통해 표시되는 프로세스 속성을 확인할 수 있습니다(위치 pspgrep확인이 동일하므로 "어색하지" 않을 것입니다). 예를 들어

#!/usr/bin/env zsh
# /bin/bash should work too, but haven't checked.

for candidate in $(pgrep -U herman); do
  # skip any Python process
  grep -q bin/python3 /proc/${candidate}/cmdline || break
  # check whether this has any *.log file as stdin or stdout or stderr
  for fd in /proc/${candidate}/fd/{0,1,2}; do
    grep -q '.*\.log$' ${fd} && echo ${candidate} && break;
  done
done

모든 프로세스(Python 제외)가 std*에 연결한 파일을 확인하는 방법입니다.

관련 정보