void zbx_on_exit() { zabbix_log(LOG_LEVEL_INFORMATION, "zbx_on_exit()"); #if !defined(_WINDOWS) int i = 0; if (threads != NULL) { for ( i = 1; i <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS + CONFIG_DISCOVERER_FORKS + CONFIG_DBSYNCER_FORKS + CONFIG_IPMIPOLLER_FORKS; i ++) { if (threads[i]) { kill(threads[i], SIGTERM); threads[i] = (ZBX_THREAD_HANDLE)NULL; } } zbx_free(threads); } #endif /* not _WINDOWS */ #ifdef USE_PID_FILE daemon_stop(); #endif /* USE_PID_FILE */ free_metrics(); zbx_sleep(2); /* wait for all threads closing */ DBconnect(ZBX_DB_CONNECT_EXIT); free_database_cache(); DBclose(); /* zbx_mutex_destroy(&node_sync_access);*/ #ifdef HAVE_OPENIPMI free_ipmi_handler(); #endif zabbix_close_log(); #ifdef HAVE_SQLITE3 php_sem_remove(&sqlite_access); #endif /* HAVE_SQLITE3 */ zabbix_log(LOG_LEVEL_INFORMATION, "ZABBIX Proxy stopped. ZABBIX %s (revision %s).", ZABBIX_VERSION, ZABBIX_REVISION); exit(SUCCEED); }
void zbx_remove_sqlite3_mutex() { php_sem_remove(&sqlite_access); }