アプリでプロセスを作成するために Poco を使用しています。プロセスが正常に終了するか、クラッシュした場合は、プロセスを再起動したいと思います。
現在、次のように開始されています。
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 でこれを処理する必要があります。