나는 가지고있다
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를 통해 표시되는 프로세스 속성을 확인할 수 있습니다(위치 ps
와 pgrep
확인이 동일하므로 "어색하지" 않을 것입니다). 예를 들어
#!/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*에 연결한 파일을 확인하는 방법입니다.