1
Poco를 사용하여 앱에서 프로세스를 만듭니다. 프로세스가 정상적으로 종료되거나 충돌이 발생하면 프로세스를 다시 시작하고 싶습니다.Poco sub 프로세스가 충돌하는 것을 감지하는 방법은 무엇입니까?
ProcessHandle ph = Process::launch("foo.exe", args, 0, &outPipe, 0);
PipeInputStream istr(outPipe);
std::string s;
int c = istr.get();
while (c != -1)
{
s += (char) c; c = istr.get();
}
정상 종료가 위 그림과 같이 최종 출력 파일을 기다리고 쉽게 처리되어 다음과 같이
현재이 시작됩니다.프로세스가 충돌 할 때 어떻게 처리 할 수 있습니까? Windows 및 Linux에서이 문제를 해결해야합니다.
오랜 시간이 지나면 답장하지만 동일한 문제에 직면하고 있습니다. 'wait()'를 시도했지만 항상 '0'을 반환합니다. 많이 찾았지만 POCO에서 프로세스를 추적하는 더 좋은 방법을 찾지 못했습니다. 이것이 내가 프로세스를 생성하고 추적하기 위해 POCO를 버리는 이유입니다. 이제'fork'와'exec' (유닉스 용)를 사용합니다. – Aman