부모프로세스 PID로 자식프로세스 PID를 구하고자 합니다...

chodadoo의 이미지

부모프로세스 PID로 자식프로세스 PID를 구하고자 합니다...

형태는 이러합니다.
만든 프로그램을 A라고 할때

A프로그램이 B프로그램을 실행시킵니다.
그러면 B프로그램은 C프로그램을 실행시키고 B프로그램은 종료됩니다.

이런형태인데... A프로그램이 최종적으로 C프로그램의 PID를 취득하는게 목표인데...
검색해봐도 찾기가 힘들고;;; 어떻게 해야할지 고민되어 글을 올립니다.

cinsk의 이미지

B 프로그램을 고칠 수 있는 상황인가요?

B가 C를 실행하고, C가 죽기 전에 B가 죽었다면, C의 parent는 init로 re-parent되기 때문에, A의 입장에서 C의 pid를 알기는 힘듭니다.

일반적으로 child process는 parent pid를 쉽게 알 수 있지만, parent process에서 (모든) child pid를 알기는 힘듭니다. 직접 /proc/ 을 뒤지든지, 아니면 libgtop과 같은 라이브러리를 써서 찾는 방법 밖에 떠 오르지 않네요.

한가지 방법은 C 프로그램이 실행되면 /var/run/ 등의 위치에 pid를 기록해 놓고 다른 곳에서 참고하는 것입니다. 몇몇 daemon들이 흔히 쓰는 방법입니다.

chodadoo의 이미지

A 프로그램외 수정할수 있는게 없습니다 ㅠㅠ

중요한건....
윈도우 환경인데 어떻게;;; 프로세스를 뒤져보냐;;; 이게 문제죠 으헣헣헣 ㅠㅠ