2017-05-25 61 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"