私は多くのPIDを持っているプロジェクトで作業しています。これらのうちどれがゾンビプロセスであるかを調べ、最初のゾンビプロセス。特定のPIDのPPIDが何であるかを調べる方法があるかどうかはわかりません。どんな助けもありがとう。子PIDが与えられたらどうすれば親PIDを得ることができます
5
A
答えて
2
機能getppid()は、その処理を行います。
#include <unistd.h>
int main()
{
pid_t ppid;
ppid = getppid();
return (0);
}
+2
これは明らかに呼び出し側プロセスの親PIDだけを取得します。 OPはこれを任意のプロセスで実行したいと考えていますが、一部はゾンビかもしれません。 –
2
psコマンドの送信元で、(とりわけ)が親所与pid
のpid
を返すことproc/readproc.h
で定義さget_proc_stats
呼び出された関数があります。この機能を利用するには、libproc-dev
をインストールする必要があります。それから、次のようにすることができます。
#include <proc/readproc.h>
void printppid(pid_t pid) {
proc_t process_info;
get_proc_stats(pid, &process_info);
printf("Parent of pid=%d is pid=%d\n", pid, process_info.ppid);
}
これはhereから取られます。 私は決してこれを使用しませんでしたが、著者によれば、これは参考になるかもしれません。
関連する問題
- 1. 与えられたPIDの子プロセスのリストをプログラムで取得する
- 2. 与えられたPIDのバックトレースをダンプします
- 3. のLabVIEW PIDコントローラ - Iは、PIDゲインを変えることができるどのようにPIDアルゴリズム
- 4. 与えられたPIDを持つプロセスが実行中であることを確認するには?
- 5. 与えられた名前のproccesを殺してPIDを表示する
- 6. 子プロセスからPIDを取得
- 7. シェルスクリプトでフォークされた子プロセスからプロセスID(pid)を取得する方法
- 8. 再帰でセグメントを与えられた親と子を取得するSQL
- 9. どのように私は与えられた名前のfirebaseと色を得ることができます
- 10. オートメーション要素が与えられたらどうすればいいですか?
- 11. 複数のPIDがPIDファイルに格納されています
- 12. 死んだpidでptrace(PTRACE_DETATCH、pid、NULL、NULL)が呼び出されるとどうなりますか?
- 13. 子プロセスが兄弟のPIDを取得することは可能ですか?
- 14. 与えられたプログラムが与えられたアルゴリズムを実装しているかどうかをチェックするベリファイアを書くことはできますか?
- 15. どのように与えられた認証からデコードすることができます
- 16. sql serverどの子供が与えられたフルツリーを取得する方法?
- 17. エリクサーテストgenserver - 親PIDを渡す
- 18. BASHスクリプトがPIDを待つことができません
- 19. C#のUSBフラッシュドライブからVID/PIDを取得するにはどうすればよいですか?
- 20. 状態[:pid]で渡すメッセージが失敗し、新しく生成されたpidが動作します
- 21. Python - フラットなリストツリーの実装:与えられた子、親を得る?
- 22. libblkidからUUIDを与えられたデバイスを取得するにはどうすればよいですか?
- 23. スーパーバイザー:そのpidで子供を終了しようとすると、動作しませんPID
- 24. 与えられたDAGが格子であるかどうかのテスト
- 25. カーネルlinuxのpidからフルプロセスパスを取得
- 26. 次の与えられた親を得る方法
- 27. 生のOBD2識別子11または29ビットから「モード&PID」を取得するにはどうすればよいですか?
- 28. あなたが与えたプログレスバーコードは私にPIDについてのエラーを与えません
- 29. タイマーでPIDを更新するにはどうすればよいですか?
- 30. C - popenで開かれたプロセスのPIDを取得する
[linux:プログラムで他のプロセスの親pidを取得できますか?](http://stackoverflow.com/questions/1525605/linux-programmatically-get-parent-pid-of-another-process) –
' 'libproc'に' get_proc_stats'を入れておきましょう。パブリックインターフェイスから削除されたようです。代わりに 'openproc'と' readproc'を使ってpidを取得します。私は答えを投稿するつもりですが、私はそれを自分自身で動作させることはできません( 'readproc'でクラッシュします)。あなたが使用しているオスがわからないので、適用されないかもしれません。さらに読む[ここ](http://stackoverflow.com/questions/6457682/how-to-programatically-get-uid-from-pid-in-osx-using-c)、[here](http:// goo .gl/W2BBRy)と[ここ](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=731959)を参照してください。 –
ベスト・アンサーは、おそらくあなたが対象とするOSに依存しています。 Linuxの場合、 '/ proc'ファイルシステムがあります。 BSDでは、 'sysctl()'を呼び出す必要があります。私は他のシステムについて知りません... –