in reply to Re^13: how to print out windows service status
in thread how to print out windows service status

when I ran this script, it generates a too big file to open. I do not quite understand, The repeat times is not too bad.
  • Comment on Re^14: how to print out windows service status

Replies are listed 'Best First'.
Re^15: how to print out windows service status
by poj (Abbot) on Aug 03, 2017 at 18:40 UTC

    That script doesn't create a file, you need to show the code you are running.

      #!perl use strict; use autodie; use Win32::Service qw'GetServices GetStatus StopService'; use POSIX; my $date = strftime("%Y-%m-%d", localtime); my @state_name = qw( UNKNOWN Stopped START_PENDING STOP_PENDING Running CONTINUE_PENDING PAUSE_PENDING PAUSED ERROR ); my $filename = '/log_script/ServiceList.txt'; open FILE, '<', $filename;# autodie my $hostname = <FILE>; chomp $hostname; my @services = <FILE>; close FILE; open MYFILE, ">>", "/log_script/service_logs/servicestatus\_$date\.log +"; print MYFILE "Checking Services available for '$hostname'\n"; my %available=(); GetServices($hostname,\%available) or die "$!"; # add short names $available{$_} = $_ for values %available; for (my $n=0; $n <= 3; $n++) { my $t = scalar localtime; print MYFILE "\nChecking services in list - run $n $t\n"; while (@services) { s/^\s+|\s+$//g; # trim leading and trailing whites +pace if (exists $available{$_}) { my $shortname = $available{$_}; my %status; GetStatus($hostname, $shortname, \%status); my $state_no = $status{'CurrentState'}; printf MYFILE " ServiceStatus: %s %s %s \n", $hostnam +e, $shortname, $state_name[$state_no]; } else { print MYFILE "-- ERROR -- '$_' status not avaiable\n"; } } sleep (10) }
      This is what I modified based on the script you gave me. I tried an approach that using windows scheduler to run original script at an interval time, but I did not get the output file via that approach. I do not know what configuration I have missed. Now I am trying to hard coding the repeats to check services, but it generated a huge file within a min.
        #while (@services) for (@services){
        poj