/* * main loop, calls prompt forever */ int main(int argc, char **argv) { setup(); while (1) { prompt(); job_cleanup(); } }
static void __main_clean(int keeppid) { if (g_c == NULL) return; job_cleanup(); ly_db_close(); ly_clc_ip_clean(); ly_entity_store_destroy(); ly_epoll_close(); if (keeppid == 0) lyutil_remove_pid_file(g_c->pid_path, PROGRAM_NAME); if (g_c->conf_path) free(g_c->conf_path); if (g_c->log_path) free(g_c->log_path); if (g_c->db_name) free(g_c->db_name); if (g_c->db_user) free(g_c->db_user); if (g_c->db_pass) free(g_c->db_pass); if (g_c->clc_ip) free(g_c->clc_ip); if (g_c->clc_mcast_ip) free(g_c->clc_mcast_ip); if (g_c->clc_data_dir) free(g_c->clc_data_dir); lyxml_cleanup(); logclose(); free(g_c); return; }
/* * Usage: jobs * display status of jobs */ void builtin_jobs() { job_cleanup(); job_t *j = root.n; job_t *r = job_recent(); while (j != NULL) { printf("[%d]%s %s %s\n", j->pid, ((j == r) ? "+" : "-") , fmt_job_state[j->state], j->line); j = j->n; } }