* nix 기계 에서 어떤 프로 세 스 의 생사 를 검사 합 니 다.
1682 단어 shell프로 세 스 다시 시작프로 세 스 검색
이 짜증 나 는 bug 를 찾기 전에 빠 른 보완 조 치 를 취해 야 합 니 다.
다음 질문 모드 로 전환:
A: xxx, 이 두 지주 에 게 AI 가 없 나 요?
B: 있어 요!로봇 이 이상 한 내 가 모 르 는 이유 로 늙어 죽 었 다 는 거 죠?
A: 사장 님 한테 이 로봇 이 늙어 죽 었 다 고 말 하 라 고요?
B: 내 프로그램 에 이렇게 심각 한 bug 가 있다 니!
A: 그럼 어 쩌 라 고!!!
B: 이거, 이거, 버그 찾기 힘 들 어...
A: 로봇 이 죽 었 을 때 다시 시작 하면 안 돼 요?
B: 빈랑 개!네 말 이 왜 이렇게 맞 아!
A: 95% 의 일 을 끝 냈 다 는 걸 알 았 나 봐 요. 나머지 5% 는 코드 를 써 달라 고 했 어 요. 킁 킁!
B: 네 가슴 에 있 는 빨 간 네커치프 가 더욱 선명 해 졌어!
위 와 같이 해결 방향 은 매우 간단 합 니 다. "프로 세 스 가 죽은 후에 프로 세 스 를 다시 시작 합 니 다."
그렇다면 내 가 직접적 으로 생각 할 수 있 는 것 은 감시 프로 세 스 이다. 감시 해 야 할 프로 세 스 가 살아 있 는 지 살 펴 보 는 것 이다.
아, 모든 것 이 정리 되 었 구나.
원리:
* nix 시스템 에 있 습 니 다. 실행 중인 프로 세 스 는/proc 에서 프로 세 스 번호 로 명 명 된 폴 더 를 생 성 합 니 다. 프로 세 스 가 닫 히 면 이 폴 더 는 존재 하지 않 습 니 다. 따라서 이 폴 더 의 존재 여 부 를 확인 하면 됩 니 다.
지혜 로 운 나 는 로봇 프로 세 스에 서 pid 를 가 져 와 서/var/run/의 어떤 파일 에 쓴다.
감시 하 는 과정 에서 일정 시간 마다 점검 해 보 자. 하하. 해결!상위 코드:
#!/bin/bash
robotpidf=/var/run/ddzrobot2.pid
checkrobot()
{
# pid , /proc ,
if !([ -f ${robotpidf} ] && [ -e /proc/$(cat ${robotpidf}) ]);then
(python robot2.py &)
else
echo ' '
fi
}
while [[ 1 ]]; do
#
if [ $(ps -ef | grep 'python .* gate' | wc -l) -gt 1 ];then
checkrobot
else
echo ' '
exit 0
fi
sleep 60
done
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.