2017-05-25 66 views
-1

我无法通过子程序在python中启动和停止服务。得到错误像无法通过python中的子进程启动和停止服务

Traceback (most recent call last): 
File "subProcessExample.py", line 3, in <module> 
p = Popen(["C:/Program Files/Apache Software Foundation/Tomcat8.0/bin", service, "stop"], stdin=PIPE, stdout=PIPE, stderr=PIPE) 
File "C:\Python27\lib\subprocess.py", line 679, in __init__ 
    errread, errwrite) 
File "C:\Python27\lib\subprocess.py", line 893, in _execute_child 
startupinfo) 
WindowsError: [Error 5] Access is denied 
+0

请张贴更易读的回溯。把它放在代码块中,这样行就不会被包装。 – Barmar

+4

错误消息似乎很明显:您正试图运行一个程序,但您没有适当的权限。你需要用root来停止和启动服务。 – Barmar

回答

0

我解决了我的错误如下

1.I带扩展名改为服务的.exe文件 2.I运行CMD管理员

这里是我的代码开始和停止服务

# To stop service 
from subprocess import Popen, PIPE 
path = "C:/Program Files/Apache Software Foundation/Tomcat 8.0/bin/" 
service = "Tomcat8.exe" 
def startService(service, path): 
p = Popen([path+service, "start"]) 
stdout, stderr = p.communicate() 
if(p.poll() == 0): 
    print "SUCCESS" 
else: 
    print "Failed to start" 
startService(service, path) 

#To stop service replace "start" with "stop"