/* Daemon stop sequence */ static void stop_check(void) { /* Destroy master thread */ signal_handler_destroy(); thread_destroy_master(master); free_checkers_queue(); free_ssl(); if (!(debug & 16)) clear_services(); ipvs_stop(); /* Stop daemon */ pidfile_rm(checkers_pidfile); /* Clean data */ free_global_data(data); free_check_data(check_data); #ifdef _WITH_VRRP_ free_interface_queue(); #endif #ifdef _DEBUG_ keepalived_free_final("Healthcheck child process"); #endif /* * Reached when terminate signal catched. * finally return to parent process. */ closelog(); exit(0); }
/* Daemon stop sequence */ static void stop_check(int status) { /* Destroy master thread */ signal_handler_destroy(); thread_destroy_master(master); free_checkers_queue(); free_ssl(); if (!__test_bit(DONT_RELEASE_IPVS_BIT, &debug)) clear_services(); ipvs_stop(); #ifdef _WITH_SNMP_CHECKER_ if (global_data->enable_snmp_checker) check_snmp_agent_close(); #endif /* Stop daemon */ pidfile_rm(checkers_pidfile); /* Clean data */ free_global_data(global_data); free_check_data(check_data); #ifdef _WITH_VRRP_ free_interface_queue(); #endif free_parent_mallocs_exit(); /* * Reached when terminate signal catched. * finally return to parent process. */ log_message(LOG_INFO, "Stopped"); closelog(); #ifndef _MEM_CHECK_LOG_ FREE_PTR(check_syslog_ident); #else if (check_syslog_ident) free(check_syslog_ident); #endif exit(status); }
/* Reload thread */ int reload_check_thread(thread_t * thread) { /* set the reloading flag */ SET_RELOAD; log_message(LOG_INFO, "Got SIGHUP, reloading checker configuration"); /* Signals handling */ signal_handler_reset(); /* Destroy master thread */ #ifdef _WITH_VRRP_ kernel_netlink_close(); #endif thread_destroy_master(master); master = thread_make_master(); free_global_data(global_data); free_checkers_queue(); #ifdef _WITH_VRRP_ free_interface_queue(); #endif free_ssl(); ipvs_stop(); /* Save previous conf data */ old_check_data = check_data; check_data = NULL; /* Reload the conf */ #ifdef _DEBUG_ mem_allocated = 0; #endif check_signal_init(); signal_set(SIGCHLD, thread_child_handler, master); start_check(); /* free backup data */ free_check_data(old_check_data); UNSET_RELOAD; return 0; }
/* Daemon stop sequence */ static void stop_check(void) { /* Destroy master thread */ signal_handler_destroy(); thread_destroy_master(master); free_checkers_queue(); free_ssl(); if (!__test_bit(DONT_RELEASE_IPVS_BIT, &debug)) clear_services(); ipvs_stop(); #ifdef _WITH_SNMP_CHECKER_ if (global_data->enable_snmp_checker) check_snmp_agent_close(); #endif /* Stop daemon */ pidfile_rm(checkers_pidfile); /* Clean data */ free_global_data(global_data); free_check_data(check_data); #ifdef _WITH_VRRP_ free_interface_queue(); #endif #ifdef _MEM_CHECK_ keepalived_free_final("Healthcheck child process"); #endif /* * Reached when terminate signal catched. * finally return to parent process. */ log_message(LOG_INFO, "Stopped"); closelog(); exit(0); }
/* Reload thread */ static int reload_check_thread(thread_t * thread) { /* set the reloading flag */ SET_RELOAD; log_message(LOG_INFO, "Got SIGHUP, reloading checker configuration"); /* Destroy master thread */ #ifdef _WITH_VRRP_ kernel_netlink_close(); #endif thread_cleanup_master(master); free_global_data(global_data); free_checkers_queue(); #ifdef _WITH_VRRP_ free_interface_queue(); #endif free_ssl(); ipvs_stop(); /* Save previous conf data */ old_check_data = check_data; check_data = NULL; /* Reload the conf */ #ifdef _MEM_CHECK_ mem_allocated = 0; #endif start_check(); /* free backup data */ free_check_data(old_check_data); UNSET_RELOAD; return 0; }
/* Reload thread */ int reload_check_thread(thread_t * thread) { /* set the reloading flag */ SET_RELOAD; /* Signals handling */ signal_reset(); signal_handler_destroy(); /* Destroy master thread */ thread_destroy_master(master); master = thread_make_master(); free_global_data(data); free_checkers_queue(); #ifdef _WITH_VRRP_ free_interface_queue(); #endif free_ssl(); ipvs_stop(); /* Save previous conf data */ old_check_data = check_data; check_data = NULL; /* Reload the conf */ mem_allocated = 0; check_signal_init(); signal_set(SIGCHLD, thread_child_handler, master); start_check(); /* free backup data */ free_check_data(old_check_data); UNSET_RELOAD; return 0; }