프로세스를 활성 상태로 유지하기 위해 "ssh ps aux"를 사용하면 때때로 문제가 발생합니다.

프로세스를 활성 상태로 유지하기 위해 "ssh ps aux"를 사용하면 때때로 문제가 발생합니다.

1분기: 최근 원격 머신의 활성 프로세스를 모니터링하기 위해 일부 작업 스크립트가 machine-01에 배포되었습니다. 이 기능은 다음 cmd를 주기적으로 실행하여 수행됩니다.

ssh $ip "ps aux | grep $pattern " | grep -v 'grep' | wc -l

예상대로 작동하지만 때로는 잘못되기도 합니다. 이는 위 cmd의 결과가 "null"임을 의미합니다. 그런데 다음 cmd를 통해 결과를 확인합니다.

if [ "$nums" -lt 1 ]

2분기: 또한 이 작업 스크립트는 다른 하위 스크립트를 실행하기 위한 백그라운드 하위 프로세스를 생성하며 설계 번호는 60입니다. 예상한 대로 생성되었는지 확인하기 위해 'ps aux | grep xxx'를 실행하면 동일한 CMD에 대해 서로 다른 PID가 있는 몇 줄을 발견합니다. 이를 "유령 pid"라고 합니다. 이러한 "고스트 pid"가 이러한 백그라운드 하위 프로세스에 의해 생성된 하위 하위 프로세스인 경우 동일한 CMD를 갖는 이유는 무엇입니까?

이 두 가지 사실은 내가 아마도 'ps aux | grep xxx'를 잘 모른다는 것을 암시합니다. 누군가 나에게 몇 가지를 설명해 줄 수 있습니까?

=============================

ps aux | grep xxx를 pgrep으로 바꾼 후. "유령 pid"가 여전히 발생합니다. Q1을 다시 확인하여 해킹했습니다. 하지만 여전히 Q2를 고칠 수 없습니다. 그림-1은 내 시작 하위 프로세스 로그입니다. 그림 2는 하위 프로세스를 period pgrep할 때 얻은 결과입니다.

그림. 1 :여기에 이미지 설명을 입력하세요.

그림 2:여기에 이미지 설명을 입력하세요.

관련 정보