コード例 #1
0
ファイル: seafile-controller.c プロジェクト: krutten/seafile
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;
}
コード例 #2
0
ファイル: seafile-controller.c プロジェクト: krutten/seafile
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 ();
}
コード例 #3
0
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;
}
コード例 #4
0
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 ();
}