2016-01-26 4 views
0

Я использую скрипт Python для остановки службы Tomcat. Я получаю сообщение об ошибке:Python-скрипт, чтобы остановить сообщение об ошибке Tomcat Указанная служба не существует как установленная служба

error: (1060, 'GetServiceKeyName', 'The specified service does not exist as an installed service.') 

Способ, чтобы остановить службу является:

def service_info(action, machine, service): 
if action == 'stop': 
    win32serviceutil.StopService(service, machine) 
    print '%s stopped successfully' % service 
elif action == 'start': 
    win32serviceutil.StartService(service, machine) 
    print '%s started successfully' % service 
elif action == 'restart': 
    win32serviceutil.RestartService(service, machine) 
    print '%s restarted successfully' % service 
elif action == 'status': 
    if win32serviceutil.QueryServiceStatus(service, machine)[1] == 4: 
     print "%s is running normally" % service 
    else: 
     print "%s is *not* running" % service 

Из моего базового класса UnitTest я называю метод, как это:

from Utilities.HelperMethods import recursive_overwrite, rename_file, delete_a_file, stop_a_service, service_info 
class BaseTestCase(unittest.TestCase): 
    @classmethod 
    def setUpClass(cls): 

    machine = 'riaz-pc' 
    service_tomcat = 'Tomcat7.exe' 
    action_stop = 'stop' 
    action_start = 'start'   
    service_info(action_stop, machine, service_tomcat) 
    service_info(action_start, machine, service_tomcat) 

Я думаю, я даю правильное имя сервиса Tomcat. В командной строке CMD i введите список задач, и я могу увидеть Tomcat7.exe Я предоставляю Tomcat7.exe в качестве имени службы.
Почему это не удается?

Полный журнал ошибок:

Traceback (most recent call last): 
    File "C:\Webdriver\ClearCore 501\Base\BaseTestCase.py", line 35, in setUpClass 
    service_info(action_stop, machine, service_tomcat) 
    File "C:\Webdriver\ClearCore 501\Utilities\HelperMethods.py", line 134, in service_info 
    win32serviceutil.StopService(service, machine) 
    File "C:\Python27\lib\site-packages\win32\lib\win32serviceutil.py", line 409, in StopService 
    return ControlService(serviceName, win32service.SERVICE_CONTROL_STOP, machine) 
    File "C:\Python27\lib\site-packages\win32\lib\win32serviceutil.py", line 318, in ControlService 
    hs = SmartOpenService(hscm, serviceName, win32service.SERVICE_ALL_ACCESS) 
    File "C:\Python27\lib\site-packages\win32\lib\win32serviceutil.py", line 80, in SmartOpenService 
    name = win32service.GetServiceKeyName(hscm, name) 
error: (1060, 'GetServiceKeyName', 'The specified service does not exist as an installed service.') 

Спасибо, Riaz

ответ

1

чую имя службы неправильно. Попробуйте tomcat7 вместо Tomcat7.exe:

win32serviceutil.StopService('tomcat7', 'riaz-pc') 
+0

Это работает. Благодарю. –