/* Return parent process daemon state */ int keepalived_running(unsigned long mode) { if (process_running(main_pidfile)) return 1; if (__test_bit(DAEMON_VRRP, &mode) && process_running(vrrp_pidfile)) return 1; if (__test_bit(DAEMON_CHECKERS, &mode) && process_running(checkers_pidfile)) return 1; return 0; }
/* Return parent process daemon state */ int keepalived_running(int mode) { if (process_running(main_pidfile)) return 1; else if (mode & 1 || mode & 2) return process_running((mode & 1) ? vrrp_pidfile : checkers_pidfile); if (process_running(vrrp_pidfile) || process_running(checkers_pidfile)) return 1; return 0; }
static void clean_temp_dirs () { bool err= false; array<string> a= read_directory (main_tmp_dir, err); #ifndef __MINGW32__ for (int i=0; i<N(a); i++) if (is_int (a[i])) if (!process_running (as_int (a[i]))) if (a[i] != as_string ((int) getpid ())) system ("rm -rf", url (main_tmp_dir) * url (a[i])); #else /* delete the directories after 7 days */ time_t ts = as_int (basename (url_temp_dir_sub ())) - (3600 * 24 * 7 ); for (int i=0; i<N(a); i++) if (is_int (a[i])) { time_t td= as_int (a[i]); if (td < ts) { url cur = url (main_tmp_dir) * url (a[i]); array<string> f= read_directory (cur, err); for (int j=0; j<N(f); j++) remove (cur * url (f[j])); _rmdir (as_charp (as_string (cur))); } } #endif }
/** * Free Fibre Channel ELS transaction * * @v refcnt Reference count */ static void fc_els_free ( struct refcnt *refcnt ) { struct fc_els *els = container_of ( refcnt, struct fc_els, refcnt ); assert ( ! process_running ( &els->process ) ); fc_port_put ( els->port ); free ( els ); }
void create_process(string path, string name, bool show_window, bool is_app, bool partial) { #ifdef _WIN32 PROCESS_INFORMATION ProcessInfo; STARTUPINFO StartupInfo; ZeroMemory(&StartupInfo, sizeof(StartupInfo)); StartupInfo.cb = sizeof(StartupInfo); if (show_window) CreateProcess(path.c_str(), NULL, NULL, NULL, FALSE, REALTIME_PRIORITY_CLASS, NULL, NULL, &StartupInfo, &ProcessInfo); else CreateProcess(path.c_str(), NULL, NULL, NULL, FALSE, REALTIME_PRIORITY_CLASS | CREATE_NO_WINDOW, NULL, NULL, &StartupInfo, &ProcessInfo); CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); #elif __APPLE__ string command; if (!is_app) command = path + " &"; else command = "open " + path; COUT << command << endl; system(command.c_str()); #endif while (process_running(name.c_str(), partial) == 0) Sleep(100); }
void kill_process(string name) { #ifdef _WIN32 CHAR szProcBuff[101]; DWORD pIDs[300], dwBytesReturned; HANDLE hProcess; INT i, procCount; EnumProcesses(pIDs, sizeof(pIDs), &dwBytesReturned); procCount = dwBytesReturned / sizeof(DWORD); for (i = 0; i < procCount; i++) if (pIDs[i] != 0) { hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE, 0, pIDs[i]); GetModuleBaseName(hProcess, 0, szProcBuff, 100); if (strcmp(szProcBuff, name.c_str()) == 0) TerminateProcess(hProcess, EXIT_SUCCESS); CloseHandle(hProcess); } #elif __APPLE__ string command = "killall -kill " + name; system(command.c_str()); #endif while (process_running(name.c_str()) > 0) Sleep(1); }
static void processes_kill(int sig) { for (int i = 0; i < num_processes; i++) { bench_process_t *p = processes + i; if (process_running(p)) process_kill(p, sig); } }
//fungsi utama int main (void) { //inisialisasi HAL (Hardware Abstraction Layer) halInit(); //inisialisasi kernel chSysInit(); Adc_Init(); process_running(); //inisialisasi CAN CAN_Config(); // serial sdStart(&SD2,NULL); palSetPadMode(GPIOB,3, PAL_MODE_ALTERNATE(7)); //TX palSetPadMode(GPIOB,4, PAL_MODE_ALTERNATE(7)); //RX sdStart(&SD1,NULL); palSetPadMode(GPIOA,9, PAL_MODE_ALTERNATE(7)); //TX palSetPadMode(GPIOA,10, PAL_MODE_ALTERNATE(7)); //RX sdStart(&SD3,NULL); palSetPadMode(GPIOB,10, PAL_MODE_ALTERNATE(7)); //TX palSetPadMode(GPIOE,15, PAL_MODE_ALTERNATE(7)); //RX //inisialisasi USB sduObjectInit(&SDU1); sduStart(&SDU1, &serusbcfg); //aktifasi USB usbDisconnectBus(serusbcfg.usbp); chThdSleepMilliseconds(200); usbStart(serusbcfg.usbp, &usbcfg); usbConnectBus(serusbcfg.usbp); //thread 1 chThdCreateStatic(waBacavolt, sizeof(waBacavolt), NORMALPRIO, Bacavolt, NULL); chThdCreateStatic(waBacacurrent, sizeof(waBacacurrent), NORMALPRIO, Bacacurrent, NULL); chThdCreateStatic(waThreadBMS, sizeof(waThreadBMS), NORMALPRIO, ThreadBMS, NULL); //chThdCreateStatic(waThreadkirimjoule, sizeof(waThreadkirimjoule), NORMALPRIO, Threadkirimjoule, NULL); //chThdCreateStatic(waThreadkirimjoule2, sizeof(waThreadkirimjoule2), NORMALPRIO, Threadkirimjoule2, NULL); while(TRUE) { kirim_data_usart1(); chprintf((BaseSequentialStream *)&SD1,"%d,%f,%d,%d,%f,%f,%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%d,%d,%d,%d \n",avgtemp,packsoc,packDCL,packCCL,lowvoltcell,highvoltcell,hightemp,lowtemp,packcurrent,packvolt,amphours,supply12v, deltacellvolt,avgcellvolt,mppt1_v,mppt2_v,mppt3_v,mppt4_v,mppt5_v,mppt6_v,mppt7_v,mppt8_v,mppt9_v,mppt10_v,mppt11_v,mppt12_v,mppt13_v,mppt15_v,mppt16_v, mppt1_i, mppt2_i, mppt3_i, mppt4_i, mppt5_i, mppt6_i, mppt7_i,mppt8_i, mppt9_i, mppt10_i, mppt11_i, mppt12_i, mppt13_i, mppt14_i, mppt15_i,current1,current2,current3,voltage1,voltage2,voltage3,milidetik,detik,menit,jam); //chprintf((BaseSequentialStream *)&SDU1,"%d,%f,%d,%d,%f,%f,%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f \n",avgtemp,packsoc,packDCL,packCCL,lowvoltcell,highvoltcell,hightemp,lowtemp,packcurrent,packvolt,amphours,supply12v, deltacellvolt,avgcellvolt,mppt1_v,mppt2_v,mppt3_v,mppt4_v,mppt5_v,mppt6_v,mppt7_v,mppt8_v,mppt9_v,mppt10_v,mppt11_v,mppt12_v,mppt13_v,mppt15_v,mppt16_v, mppt1_i, mppt2_i, mppt3_i, mppt4_i, mppt5_i, mppt6_i, mppt7_i,mppt8_i, mppt9_i, mppt10_i, mppt11_i, mppt12_i, mppt13_i, mppt14_i, mppt15_i); //chprintf((BaseSequentialStream *)&SDU1,"%x %x %x %x %x %x %x %x \n",RxMessage33.StdId, RxMessage44.StdId, RxMessage55.StdId, RxMessage66.StdId, RxMessage77.StdId, RxMessage88.StdId, RxMessage99.StdId, RxMessage11.StdId); //chprintf((BaseSequentialStream *)&SD1,"tes \n"); chThdSleepMilliseconds(500); } return 0 ; }
static int processes_running() { int count = 0; for (int i = 0; i < num_processes; i++) { bench_process_t *p = processes + i; if (process_running(p)) ++count; } return count; }
void print_found_files(FILE *output, const char *list) { const char *p=list; bool detected=false; while(*p) { if(process_running(p)) { fprintf(output,"%s ",p); detected=true; } p+=strlen(p)+1; } if(!detected) fprintf(output,"(none)"); fprintf(output,"\n"); }
static void handle_fatal_signal(int sig, siginfo_t *si, void *_ucontext) { #define WRITE_TXT(t) write(STDERR_FILENO, t, sizeof(t) - 1) WRITE_TXT("Caught fatal signal, terminating child processes\n"); for (int i = 0; i < num_processes; i++) { bench_process_t *p = processes + i; if (process_running(p)) if (kill(-p->pid, SIGTERM) == -1) WRITE_TXT("Warning: Failed to terminate a child process\n"); } WRITE_TXT("Passing signal to default handler...\n"); raise(si->si_signo); WRITE_TXT("Failed to pass signal to default handler, aborting\n"); abort(); #undef WRITE_TXT }