내 응용 프로그램의 자식 프로세스를 죽이고 exit(exit_code)
, 비슷하게 다른 프로세스에서 (deconstructors 및 atexit 함수를 호출하는) 정리를 수행 할 수 있습니까?정리 자식 프로세스를
답변
Windows를 사용하는 경우 마지막 매개 변수로 PROCESS_INFORMATION이있는 CreateProcess를 사용하여 하위 프로세스를 시작하는 것이 좋습니다.
Process Information on MSDN
옵션 1 : 프로세스가 hProcess 멤버에 시작에
이 프로세스 정보가 핸들을 포함합니다.
이 핸들을 저장할 수 있으며이를 사용하여 하위 프로세스를 종료 할 수 있습니다.
삽입 아마도 WM_CLOSE 및/또는 WM_QUIT를 보내시겠습니까?
이 옵션이 여기에
KB how to cleanly kill win32 processes
** 끝 삽입을 할 ** 무엇에 KB 기사는 다음과 같습니다 : 여기
는 토론이다 는 "깨끗하게"프로세스를 종료합니다 프로세스 트리를 적절히 삭제하는 방법 : Terminate a process tree on windows
'ExitProcess'는 그것을 호출 한 프로세스를 죽이고 부모로부터 자식을 죽일 필요가 있고'TerminateProcess'는 정리를 수행하지 않는다! –
이 프로세스가 생성되는 방법과 프로세스가 어떤 종류인지에 대한 정보를 제공하지 않으므로 다소 어렵습니다. WM_CLOSE를 보내는 것은 괜찮을 수도 있고, GenerateConsoleCtrlEvent()가 그 일을 할 수도 있습니다. –
'CreateProcess'를 사용하고 있는데, WM_CLOSE/WM_QUIT와는 달리 보편적 인 방법에 관심이 있습니다. WM_CLOSE을 사용하는 프로세스는 윈도우가 –
그런 종류의 간단한 Win32 API는 없습니다. OS는 프로그램의 소스 코드가 어떤 언어로 작성되었는지는 신경 쓰지 않고, 컴파일 된 프로그램은 단지 CPU 명령 시퀀스와 데이터로 나타납니다.
가장 깨끗한 방법은 프로세스간에 (예 : 공유 메모리를 통해) 어떤 종류의 통신 채널을 설정하고 프로세스 종료를 요청하는 것입니다.
자식 프로세스를 디버깅 된 프로세스로 시작한 다음 디버그 API를 사용하여 자식의 동작을 변경하여 동일하게 구현할 수 있지만 이는 너무 복잡하고 구현하기가 쉽지 않습니다.
가장 간단하고 저렴한 "통신 채널"은 명명 된 이벤트입니다. – arx
@ 아마 : 좋은 선택입니다. –
@arx 나는 이것을 할 수 없다. 자식 프로세스가 나를 쓰지 않는다. –
- 1. 자식 프로세스를 만듭니다
- 2. 비 - 자식 프로세스를 파이썬으로 생성하기
- 3. bash에서 자식 프로세스를 열고 죽인다
- 4. 모든 자식 프로세스를 포함하여 프로세스를 죽이는 깔끔하고 빠른 방법
- 5. Python이 자식 하위 프로세스를 분리하고 분리하고 종료합니다.
- 6. 스레드 또는 Appdomain에 대한 자식 프로세스를 결정하십시오.
- 7. 세 개의 자식 프로세스를 어떻게 대기합니까?
- 8. fork()는 자식 프로세스를 반환하는 방법은 무엇입니까?
- 9. Windows의 Python - 여러 자식 프로세스를 대기하는 방법?
- 10. 여러 자식 프로세스를 생성하는 중 문제가 발생했습니다.
- 11. 자식 프로세스와 부모 프로세스를 동시에 실행하는 방법
- 12. Node.JS 자체에서 자식 프로세스를 강제 종료
- 13. 시그널 핸들러에서 자식 프로세스를 죽이는 것
- 14. 실행중인 Linux 프로세스를 중단 시키면 어떤 정리 루틴이 실행됩니까?
- 15. 정리
- 16. mx의 모든 UIComponents 정리 : Application
- 17. Xcode에서 모두 정리/정리 중 스크립트 실행
- 18. 정리 정리 ORM 정의를 전송 하시겠습니까?
- 19. Ruby Sequel에 대한 정리 정의 정리
- 20. 자식 프로세스를 종료 할 수 있도록 DB 리소스를 공유하지 않고 PHP 프로세스를 생성 및 분리 하시겠습니까?
- 21. 정리 SIGPIPE에서
- 22. PHP 정리 "& $"
- 23. 리소스 정리
- 24. XML 정리
- 25. 정리 Antscript
- 26. ActionScript 정리
- 27. GDB : 많은 포크()의 후 자식 프로세스를 디버깅
- 28. 자식 프로세스가 충돌 할 때 미니 프로세스를 만드는 방법은 무엇입니까?
- 29. Java ProcessBuilder process.destroy()가 winXP에서 자식 프로세스를 종료하지 않음
- 30. Win32 현재 콘솔에서 자식 프로세스를 실행하고 부모에게 반환하지 않고 종료합니다.
가능한 복제본 http://stackoverflow.com/questions/6501522/how-to-kill-a-child-process-by-the-parent-pr ocess –
유닉스의 @MareInfinitus, 윈도우 구현이 필요합니다. –