私が構築しているプロセス スキャナーのカーネル スレッドとユーザー スレッドを区別する方法を知りたいです。両方のタイプの適切な定義を見つけるのに苦労しています。
カーネルスレッドには独自のメモリがないため、/proc/$pid/status に Vm* 値がなく、/proc/$pid/exe の統計が何も返さないことがわかりました。
したがって、プロセスに Vm* 値と inode 番号がない場合、カーネル スレッドを識別できると考えました。私は間違っていると考えました...私のスクリプトは、いつかカーネルプロセスとして識別されるphp-cgiプロセスを認識します。
これらの誤って識別されたプロセスのほとんどが、1 秒後に消滅したゾンビであることが判明した場合。そこで、ステータスが「Z」かどうかを確認する簡単なチェックを実装しました。その場合は、無視してください。これにより、多くの誤検知を回避できましたが、それでも php-cgi カーネル プロセスに関するメッセージを受け取ります。
カーネルスレッドとユーザースレッドを正しく区別する方法を誰か教えてもらえますか?