}
static void sigcrash(int signum) {
- char *coregen = "";
+ char coregen[MAXLEN];
+ coregen[0] = 0;
char *signame;
switch(signum) {
case SIGSEGV:
#ifndef WIN32
char gcore[50];
sprintf(gcore, "gcore %u", getpid());
- system(gcore); //generate core file
- coregen = "core file generated.";
+ int sysretn = system(gcore); //generate core file
+ sprintf(coregen, "core file generated. (%d)", sysretn);
putlog(LOGLEVEL_ERROR | LOGLEVEL_INFO, "generated core file.\n");
#endif
char *alertchan = get_string_field("General.alertchan");
}
putlog(LOGLEVEL_INFO, "hard shutdown...\n");
exit_daemon();
- usleep(1000000);
+ usleep(2000000);
//hard restart
restart_process();
+ exit(0);
}
static void sigexit(int signum) {