자식을 포함 할 수있는 프로세스의 PID가 있습니다. 모든 하위 프로세스의 PID를 얻으려면 어떻게해야합니까? 나는 내 자신의 PTY 핸들러를 만든다. 그래서 사용자가이 핸들러에서 쉘을 실행할 때 그는 쉘에서 직접 (더 이상) 프로그램을 실행할 수있다. 모든 run 프로그램은 쉘의 자식이된다. 그래서, Ctrl + C를 누르면 가장 새로운 프로세스에 신호를 보내야하므로, 마지막 프로세스의 PID를 알아야합니다.C에서 부모 프로세스의 자식 목록 가져 오기
답변
당신은
그것은까지입니다 (... 그리고 당신이 wait(2) 등으로 성공적으로 기다렸다 일단 PID를 제거) 명시 적으로 모든 PID를 당신의 자식 프로세스 (fork(2) ... 결과)를 유지해야 이러한 pid를 유지하기 위해 데이터 구조를 선택하십시오.
다른 접근 방식 (ps
및 pstree
가하고있는 것입니다 예를 들어, proc(5)를 사용하여이 ....) 매우 휴대용 및 비효율적 없습니다.
기본 규칙은 fork
을 호출 할 때마다 명시 적으로 그 결과를 유지해야하며 (3 가지 경우를 테스트해야합니다. 자식 프로세스 인 경우 0, 부모 프로세스 인 경우 0, 오류시 <) wait
시간.
Read Advanced Linux Programming; 그 주제와 관련된 많은 페이지가 있습니다.
당신은 또한 process groups 및 세션에 관심이있을 수 있습니다. setpgrp(2), setsid(2), daemon(3), credentials(7) 등을 참조하십시오. 음수 또는 0 PID를 사용하는 경우 kill(2)은 프로세스 그룹에 신호를 보낼 수 있으며 해당 목적으로 killpg(2)을 사용할 수도 있습니다.
fork()가 새로운 프로세스를 만듭니다. 하지만 제 경우에는 이미 자식이 있습니다. 분석 할 필요가 있습니다. – linuser
자식 *이있는 * 프로그램 *입니다. 그래서 당신은 프로그램을 썼고, 프로그램이 자식 프로세스를 가질 수있는 유일한 방법 인'fork' 호출을 간접적으로 썼습니다. 당신은 당신의 자식 프로세스의 모든 pid를 관리하기 위해 프로그램을 개선해야합니다. –
글쎄, 내 프로그램은 자식을 만들어,이 자식은 쉘 (bash, sh 등)이어야한다. bash 사용자는 더 이상 프로세스를 실행할 수 없습니다. 그래서 내 문제는 bash가 호출 할 프로세스의 PID를 얻는 것이다. – linuser
- 1. CoreData : 부모 자식 가져 오기
- 2. C에서 부모 프로세스의 변수에 액세스하는 방법은 무엇입니까?
- 3. TreeView에서 부모 목록 가져 오기
- 4. Jinja2 템플릿 (부모 및 자식)의 변수 목록 가져 오기
- 5. 요소의 자식과 부모 자식 가져 오기 :
- 6. 부모 클래스에서 자식 클래스 이름 가져 오기
- 7. 포인터를 사용하여 부모 자식 가져 오기
- 8. NHibernate. 명백한 부모 자식 가져 오기
- 9. 주어진 자식 노드에서 부모 가져 오기
- 10. 자식 컨트롤에서 부모 패널의 "이름"가져 오기
- 11. WPF 자식 페이지 부모 프레임 가져 오기
- 12. 지정된 부모의 자식 속성 가져 오기 부모?
- 13. 부모 노드 ID가있는 자식 노드 가져 오기
- 14. pg-promise가있는 부모 + 자식 트리 가져 오기
- 15. 부모 클래스에 자식 인스턴스 가져 오기
- 16. 부모 div에서 자식 div 가져 오기
- 17. 부모/자식 목록
- 18. 힘내 : 자식 자식 디렉토리에 자식 목록 가져 오기
- 19. 부모 프로세스의 자식 트리를 삭제하는 방법
- 20. 부모 노드와 해당 자식, 특정 텍스트가있는 자식 가져 오기
- 21. C에서 프로세스의 자식 수를 찾는 방법은 무엇입니까?
- 22. 부모 목록에 자식 목록 캐스팅
- 23. 자식 프로세스의 메모리 사용?
- 24. GridView 개체에서 부모 목록 뷰 가져 오기
- 25. SimpleXMLElement의 자식 목록 가져 오기 PHP
- 26. C에서 네임 스페이스의 클래스 목록 가져 오기
- 27. VC++에서 자식 프로세스의 환경 변수 가져 오기
- 28. 무한한 부모 - 자식 노드 목록
- 29. Winsock을 사용하여 소켓 목록 가져 오기
- 30. jquery - 부모 부모 가져 오기?
왜 묻는가? 실제 사용 사례는 무엇입니까? 그것을 개선하기 위해 질문을 편집하십시오! –