2016-11-29 1 views
1

現在、linuxの特定のプロセスの階層のメモリ使用量を追跡するプログラムを開発中です。親IDを見つけるのは簡単ですが、その特定のプロセスの子を見つけることは困難です。シェルスクリプトに頼らずに、プロセスのすべての子プロセスとその子プロセスなどを見つけることができる方法はありますか?Cのプロセスのプロセス階層をトラバースする

+0

私はそれを行う* C *方法は分かりません。 'ps'コマンドの出力を処理するか、'/proc'フォルダを参照して、IDと親IDを持つすべてのアクティブなプロセスのリストを取得し、そこからツリーを再構築する必要があります。そして、その操作中にプロセスの開始や終了などの競合状態に注意してください... –

答えて

1

プロセスの階層は逆です。子供は親を追跡します。 各プロセスの親を確認するには、/proc全体を調べる必要があります。

また、あなたは、例えば、開始からプロセスを監視することができた場合:これは、すべてのこれらのツールが実装するものですstraceのように、fork/cloneシステムコールをすべて追跡し、返された子ピッドを記録することができます。

関連する問題