我嘗試使用Popen創建子進程。這裏是我的代碼在第一次:Python - 在Popen中使用列表作爲命令
hostname = 'host'
servername = 'server'
commandargs = ['/usr/sbin/mminfo',' -o n',' -s',servername,' -q "client=\'',hostname,'\',savetime>=last day"',' -r "client,name"']
process = subprocess.Popen(commandargs, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
的問題是執行命令的消息失敗,該聯繫的服務器不可用。似乎變量主機名不被使用... 嘗試使用一個字符串,而不是一個列表,作爲Popen命令(殼牌= True),一切工作正常。
有人知道代碼有什麼問題嗎?
問候。 Stefan
不要引用主機名,沒有必要。有效的主機名不包含任何可能會擴展爲奇怪的字符,也不會有空格。你應該做的另一件事是讓命令中的每個實體分開,不要做'-o n',而是'-o','n'等。 – synthesizerpatel 2012-01-05 14:09:03
hostname ='host' 你的意思是說^ ?這是我用測試主機名填充變量的測試。 – StefanS 2012-01-05 14:14:47