По какой-то причине, когда я запускаю свой Apache веб-сервер, моя функция регистрации хуков вызывается дважды. Не могу понять это. Ниже мое MRE воспроизводит
#include "httpd.h"
#include "http_config.h"
#include "ap_config.h"
module AP_MODULE_DECLARE_DATA my_module = {
STANDARD20_MODULE_STUFF,
NULL, /* create per-dir config structures */
NULL, /* merge per-dir config structures */
NULL, /* create per-server config structures */
NULL, /* merge per-server config structures */
NULL, /* table of config file commands */
my_register_hooks /* register hooks */
};
static void my_register_hooks(apr_pool_t *p)
{
printf("** This should get printed once, it gets printed twice! **\n");
}
И когда я компилирую и запускаю apache2ctl -X
, мой вывод
** This should get printed once, it gets printed twice! **
** This should get printed once, it gets printed twice! **
В то время как я ожидаю
** This should get printed once, it gets printed twice! **
Почему это происходит? Это ожидаемое поведение? Я собираю и работаю в стандартном контейнере Ubuntu 16.04 docker, и мой файл module.load содержит 1 строчку, которую я поместил в доступные моды и включенные моды. Помещение только в модах не решает проблему. Заранее благодарим за любую информацию, которую вы можете дать для модулей Apache, Apache, и эта проблема касается.