2010-02-23 5 views
4

현재 Apache 2/2.2 용 모듈을 개발 중이며 기본 Apache 프로세스가 종료되기 전에 (자식 프로세스가 아닌) 일부 정리 작업을 수행해야합니다.정리에 사용할 Apache 종료 훅이 있습니까?

어떤 후크를 사용해야하는지에 대한 지침을 찾지 않고 광범위하게 검색했습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

+0

그러나 나는 당신이 requie 것이다 Devloping은되어 무엇인지 알고 intereste 해요? – Layke

+0

시작시 별도의 프로세스를 포크화할 생각을하고 있었고 기본 Apache 프로세스가 종료되어 수명주기가 맞춰지면 종료되도록이를 알리고 싶습니다. – Chris

+0

사용하기에 적합한 고리를 찾을 수는 없지만 잠재적 인 해결 방법을 찾았습니다. 프로세스가 종료 될 때 풀이 삭제 될 때 호출되는 서버 또는 프로세스 풀에 정리 기능을 추가 할 수 있습니다. 주 아파치 프로세스가 종료 될 때 또는 자식이 종료 될 때 이것이 트리거되는지 알 수 있습니까? – Chris

답변

2

정확히 무엇을 하려는지 확실하지 않지만 apr_reslist_create 및 apr_pool_cleanup_register 기능이 도움이 될 것으로 생각합니다. apr_reslist_create 함수의 매개 변수 중 하나는 소멸자 함수를 전달하는 데 사용할 수있는 apr_reslist_destructor입니다. 또한 mod_dbd 모듈 소스 코드를 살펴 봐야한다고 생각합니다. 아파치 프로세스에서 외부 리소스를 만들고 정리하는 좋은 예이기 때문입니다.

나도 몰라

Apr-Util apr_reslist_create

Apr apr_pool_cleanup_register

+1

어디서 apr_pool_cleanup_register를 호출할까요? msg 브로커에 대한 연결을 만들고 서버 시작시 연결하고 서버 종료시 자원을 삭제하려고합니다. – thaweatherman

+0

child_init 훅 함수에서 호출 할 수 있습니다. 먼저 ap_hook_child_init (my_module_child_init_fn, NULL, NULL, APR_HOOK_MIDDLE) 호출로 후크를 추가 한 다음 리소스를 만들고 my_module_child_init_fn 함수 내에 apr_pool_cleanup_register를 설정하십시오. – Boris

+0

감사합니다. 그럼 내 연결은 프로세스가 살아있는 전체 시간 동안 지속되며, 프로세스가 종료 되 자마자 정리 기능이 호출됩니다. 맞습니까? – thaweatherman

관련 문제