![특정 패턴과 일치하는 장기 실행 프로세스 목록을 어떻게 얻을 수 있나요?](https://linux55.com/image/16793/%ED%8A%B9%EC%A0%95%20%ED%8C%A8%ED%84%B4%EA%B3%BC%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EC%9E%A5%EA%B8%B0%20%EC%8B%A4%ED%96%89%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%96%BB%EC%9D%84%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
ps aux | grep cgi
현재 실행 중인 모든 cgi 스크립트 목록을 얻을 수 있고 각 pid의 실행 시간을 얻을 수 있다는 것을 알고 있습니다 ps -p [pid] -o etime=
. 두 가지를 결합하는 방법이 있습니까? 아니면 "너무 오래" 실행되는 스크립트만 반환하는 것이 더 좋습니다. 예를 들어 45초)?
이상적으로는 문제를 찾고, 세부 사항을 이메일로 보내며, "안전을 위해" 프로세스를 적극적으로 종료할 수 있는 Perl 스크립트에 넣을 수 있는 것을 찾고 있습니다. a의 출력을 묶은 다음 결과를 반복하는 것이 더 낫습니까?
답변1
나는 과거에도 비슷한 일을 했습니다.
ps -A -o etime,pid,user,args| grep init
반품
180-04:55:20 1 root init [5]
이는 Perl에서 구문 분석하기 쉽습니다. 나는 그것을 분석하기 위해 분할과 팝을 사용합니다.
형식은 [[dd-]hh:]mm:ss입니다.
답변2
대신, 당신은 실행할 수 있습니다감시 장치, 이는 이미 이를 위해 설계되었습니다.