July 2002
Intermediate to advanced
608 pages
15h 46m
English
Credit: Andy McKay
You need to control Windows services on any local machine.
The win32all package includes a
win32serviceutil module that is specifically designed to
handle Windows services:
# needs win32all, or ActiveState's ActivePython distribution
import win32serviceutil
def service_running(service, machine):
return win32serviceutil.QueryServiceStatus(service, machine)[1] == 4
def service_info(action, machine, service):
running = service_running(service, machine)
servnam = 'service (%s) on machine(%s)'%(service, machine)
action = action.lower( )
if action == 'stop':
if not running:
print "Can't stop, %s not running"%servnam
return 0
win32serviceutil.StopService(service, machine)
running = service_running(service, machine)
if running:
print "Can't stop %s (???)"%servnam
return 0
print '%s stopped successfully' % servnam
elif action == 'start':
if running:
print "Can't start, %s already running"%servnam
return 0
win32serviceutil.StartService(service, machine)
running = service_running(service, machine)
if not running:
print "Can't start %s (???)"%servnam
return 0
print '%s started successfully' % servnam
elif action == 'restart':
if not running:
print "Can't restart, %s not running"%servnam
return 0
win32serviceutil.RestartService(service, machine) running = service_running(service, machine) if not running: print "Can't restart %s (???)"%servnam return 0 print '%s restarted successfully' % servnam elif action == 'status': if running: ...Read now
Unlock full access