/****************************************************************************** mysql_start() Start the mysql servers. ******************************************************************************/ void mysql_start() { log_info("Starting the MySQL server(s): %u", ++restarts); start_master(); start_slave(); // activate the test screen ActivateScreen(getscreenhandle()); }
static void master_net_start(void) { if (standalone == 0) { if (miface == 2) { recver_start(); } start_file_server(); start_master(); grp_start(); } }
static void master_service_start(void) { zopt_start(); recver_init(); recver_prepare(); recver_start(); if (standalone == 0) { start_file_server(); start_master(); grp_start(); } }
static bool ltr_int_try_start_master(int *l_master_uplink, int *l_master_downlink) { int master_restart_retries = master_retries; while(master_restart_retries > 0){ close_master_comms(l_master_uplink, l_master_downlink); if(ltr_int_gui_lock(false)){ start_master(l_master_uplink, l_master_downlink); --master_restart_retries; }else{ master_restart_retries = master_retries; } if(open_master_comms(l_master_uplink, l_master_downlink)){ ltr_int_log_message("Master is responding!\n"); return true; } sleep(2); } return false; }
static bool ltr_int_try_start_master(int *l_master_uplink) { int master_restart_retries = master_retries; while(master_restart_retries > 0){ close_master_comms(l_master_uplink); if(ltr_int_gui_lock(false)){ ltr_int_log_message("GUI lock retrieved, no GUI running.\n"); start_master(); usleep(100); --master_restart_retries; }else{ master_restart_retries = master_retries; } if(open_master_comms(l_master_uplink)){ ltr_int_log_message("Master is responding!\n"); return true; } sleep(1); } return false; }
void child_handler(int sig) { int pid; LS_WAIT_T status; struct rusage rusage; register float cpuTime; struct lsfRusage lsfRusage; struct jobCard *jobCard; static short lastMbdExitVal = MASTER_NULL; static int sbd_finish_sleep = -1; cleanRusage (&rusage); now = time(0); while ((pid=wait3(&status, WNOHANG, &rusage)) > 0) { if (pid == mbdPid) { int sig = WTERMSIG(status); if (mbdExitCnt > 150) mbdExitCnt = 150; mbdExitVal = WIFSIGNALED(status); if (mbdExitVal) { ls_syslog(LOG_ERR, _i18n_msg_get(ls_catd , NL_SETN, 5600, "mbatchd died with signal <%d> termination"), /* catgets 5600 */ sig); if (WCOREDUMP(status)) ls_syslog(LOG_ERR, _i18n_msg_get(ls_catd , NL_SETN, 5601, "mbatchd core dumped")); /* catgets 5601 */ mbdExitVal = sig; if (mbdExitVal == lastMbdExitVal) mbdExitCnt++; else { mbdExitCnt = 0; lastMbdExitVal = mbdExitVal; } continue; } else { mbdExitVal = WEXITSTATUS(status); if (mbdExitVal == lastMbdExitVal) mbdExitCnt++; else { mbdExitCnt = 0; lastMbdExitVal = mbdExitVal; } if (mbdExitVal == MASTER_RECONFIG) { ls_syslog(LOG_NOTICE, _i18n_msg_get(ls_catd , NL_SETN, 5602, "mbatchd resigned for reconfiguration")); /* catgets 5602 */ start_master(); } else ls_syslog(LOG_NOTICE, _i18n_msg_get(ls_catd , NL_SETN, 5603, "mbatchd exited with value <%d>"), /* catgets 5603 */ mbdExitVal); continue; } } ls_ruunix2lsf (&rusage, &lsfRusage); cpuTime = lsfRusage.ru_utime + lsfRusage.ru_stime; for (jobCard = jobQueHead->forw; (jobCard != jobQueHead); jobCard = jobCard->forw) { if (jobCard->exitPid == pid) { jobCard->w_status = LS_STATUS(status); jobCard->exitPid = -1; if (logclass & LC_EXEC) { ls_syslog(LOG_DEBUG, I18N(5604, "child_handler: Job <%s> exitPid <%d> status <%d> exitcode <%d>"),/*catgets 5604*/ lsb_jobid2str(jobCard->jobSpecs.jobId), pid, jobCard->w_status, WEXITSTATUS(status)); } } if (jobCard->jobSpecs.jobPid == pid) { jobCard->collectedChild = TRUE; jobCard->cpuTime = cpuTime; jobCard->w_status = LS_STATUS(status); jobCard->exitPid = -1; memcpy ((char *) &jobCard->lsfRusage, (char *) &lsfRusage, sizeof (struct lsfRusage)); jobCard->notReported++; if (sbd_finish_sleep < 0) { if (daemonParams[LSB_SBD_FINISH_SLEEP].paramValue) { errno = 0; sbd_finish_sleep = atoi(daemonParams[LSB_SBD_FINISH_SLEEP].paramValue); if (errno) sbd_finish_sleep = 0; } else { sbd_finish_sleep=0; } } if (sbd_finish_sleep > 0) { millisleep_(sbd_finish_sleep); } if (logclass & LC_EXEC) { ls_syslog(LOG_DEBUG, I18N(5605, "child_handler: Job <%s> Pid <%d> status <%d> exitcode <%d>"), /*catgets 5605*/ lsb_jobid2str(jobCard->jobSpecs.jobId), pid, jobCard->w_status, WEXITSTATUS(status)); } need_checkfinish = TRUE; break; } } } }
// main function int _tmain(int argc, _TCHAR* argv[]) { int code = 0; int interactive = 0; int tcp_port = 13110; int com_port = 0; // set console to display special characters correctly setlocale(LC_ALL, ""); printf("WinOPDI test program. Arguments: [-i] [-tcp <port>] [-com <port>]\n"); printf("-i starts the interactive master.\n"); for (int i = 1; i < argc; i++) { if (_tcscmp(argv[i], _T("-i")) == 0) { interactive = 1; } else if (i < argc - 1) { if (_tcscmp(argv[i], _T("-tcp")) == 0) { // parse tcp port number tcp_port = _wtoi(argv[++i]); if ((tcp_port < 1) || (tcp_port > 65535)) { printf("Invalid TCP port number: %d\n", tcp_port); exit(1); } } else if (_tcscmp(argv[i], _T("-com")) == 0) { // parse com port number com_port = _wtoi(argv[++i]); if ((com_port < 1) || (com_port > 32)) { printf("Invalid COM port number: %d\n", com_port); exit(1); } } else { printf("Unrecognized argument: %s\n", argv[i]); exit(1); } } else { printf("Invalid syntax: missing argument\n"); exit(1); } } // master? if (interactive) { code = start_master(); } else { opdi_set_timeout(65535); // slave if (com_port > 0) { LPCTSTR comPort = (LPCTSTR)malloc(6); wsprintf((LPTSTR)comPort, _T("COM%d"), com_port); code = listen_com(comPort, 115000, ONESTOPBIT, NOPARITY, 8, 1000); } else { code = listen_tcp(tcp_port); } } printf("Exit code: %d", code); exit(code); }