bool Moose::isTwiddlyRunning() { bool found = false; kinfo_proc* processList = NULL; size_t processCount = 0; if ( getBsdProcessList( &processList, &processCount ) ) { LOG( 3, "Failed to get the process list" ); return false; } uint const uid = ::getuid(); for ( size_t processIndex = 0; processIndex < processCount; processIndex++ ) { if ( processList[processIndex].kp_eproc.e_pcred.p_ruid == uid ) { if ( strcmp( processList[processIndex].kp_proc.p_comm, "twiddly" ) == 0 ) { found = true; break; } } } free( processList ); if ( found ) LOG( 3, "Twiddly already running!" ); return found; }
bool isProcessRunning( const QString& processName ) { bool found = false; kinfo_proc* processList = NULL; size_t processCount = 0; if ( getBsdProcessList( &processList, &processCount ) ) { return false; } uint const uid = ::getuid(); for ( size_t processIndex = 0; processIndex < processCount; processIndex++ ) { if ( processList[processIndex].kp_eproc.e_pcred.p_ruid == uid ) { if ( strcmp( processList[processIndex].kp_proc.p_comm, processName.toLocal8Bit() ) == 0 ) { found = true; break; } } } free( processList ); return found; }