Kill(pid、0)はエラーコードを正しく設定していないようです...人がkillについて述べているように
エラー
次の場合、kill()関数は失敗します。
EINVAL sig引数の値は、無効またはサポートされていないシグナル番号です。
EPERMプロセスには、受信プロセスに信号を送信する権限がありません。
ESRCHpidで指定されたものに対応するプロセスまたはプロセスグループが見つかりません。次のセクションは参考情報です。 1
ENOENT(そのようなファイルやディレクトリはありません)を返し、EINTR(システムコールが中断されました)を返すことがあります...
これが私がしていることです:
kill(g_StatusInstance[i].pid, SIGTERM) == -1 && log_fatal_syscall("kill-sigterm");
kill(g_StatusInstance[i].pid, 0);
log_info_console( "Checking process for errors: %s\n", strerror(errno));
if(errno != ENOENT)
{
kill(g_StatusInstance[i].pid, SIGKILL) == -1 && log_fatal_syscall("kill-sigkill");
}
私は何か間違ったことをしていますか?