use Win32::Service; my %statusHash; Win32::Service::GetStatus("", "EventLog", \%statusHash); print $statusHash{"CurrentState"} . "\n"; # CurrentState can be: # 1 = stopped. # 2 = start pending. # 3 = stop pending. # 4 = running. # 5 = continue pending. # 6 = pause pending. # 7 = paused.