static gboolean check_heartbeat (void *data) { time_t now = time(NULL); int i; for (i = 0; i < N_HEARTBEAT; i++) { if (ctl->last_hb[i] == 0) ctl->last_hb[i] = now; } if (now - ctl->last_hb[HB_SEAFILE_SERVER] > MAX_HEARTBEAT_LIMIT) { try_kill_process(PID_SERVER); seaf_message ("seaf-server need restart...\n"); start_seaf_server (); ctl->last_hb[HB_SEAFILE_SERVER] = time(NULL); } if (now - ctl->last_hb[HB_SEAFILE_MONITOR] > MAX_HEARTBEAT_LIMIT) { try_kill_process(PID_MONITOR); seaf_message ("seaf-mon need restart...\n"); start_seaf_monitor (); ctl->last_hb[HB_SEAFILE_MONITOR] = time(NULL); } return TRUE; }
static void on_ccnet_connected () { if (start_seaf_server () < 0) controller_exit(1); if (start_seaf_monitor () < 0) controller_exit(1); if (start_mq_client () < 0) controller_exit(1); add_client_fd_to_mainloop (); start_hearbeat_monitor (); }
static gboolean check_process (void *data) { if (need_restart(PID_SERVER)) { seaf_message ("seaf-server need restart...\n"); start_seaf_server (); } if (ctl->seafdav_config.enabled) { if (need_restart(PID_SEAFDAV)) { seaf_message ("seafdav need restart...\n"); start_seafdav (); } } return TRUE; }
static void on_ccnet_connected () { if (start_seaf_server () < 0) controller_exit(1); if (ctl->seafdav_config.enabled) { if (need_restart(PID_SEAFDAV)) { if (start_seafdav() < 0) controller_exit(1); } } else { seaf_message ("seafdav not enabled.\n"); } add_client_fd_to_mainloop (); start_process_monitor (); }