use CGI qw/:standard escape unescape/; use Win32; use Win32::Service; my $Server = ""; my %statusCode; $statusCode{1} = "Stopped"; $statusCode{4} = "Started"; my $serviceName = $ARGV[0]; my $action = $ARGV[1]; main(); sub main{ print header; print "hi"; stopService($Server,"MSFtpsvc"); #if($action eq "start"){ # startService($Server,$serviceName); #} elsif($action eq "stop"){ # stopService($Server,$serviceName); #} #ServiceState(); } sub ServiceState{ my %status; Win32::Service::GetStatus($Server, $serviceName, \%status); print qq|Service $serviceName is currently: | . $statusCode{$status{CurrentState}} . "\n"; } #********************************************************************* # Stop/Start service sub stopService { my ($Server, $Service) = @_ ; my %status; Win32::Service::GetStatus($Server, $Service, \%status); if($status{CurrentState} eq "4"){ Win32::Service::StopService($Server, $Service); } sleep 5; Win32::Service::GetStatus($Server, $Service, \%status); if($status{CurrentState} ne "4"){ print "$Service is stopped\n"; } } sub startService { my ($Server, $Service) = @_ ; my %status; Win32::Service::GetStatus($Server, $Service, \%status); if($status{CurrentState} ne "4"){ Win32::Service::StartService($Server, $Service); } sleep 5; Win32::Service::GetStatus($Server, $Service, \%status); if($status{CurrentState} eq "4"){ print "$Service is started\n" } }