0
我需要發出「sudo service nginx status」來檢查服務狀態。我有以下幾點:如何使用python發出sudo命令
import commands
service output = commands.getoutput("sudo service nginx status")
,但我得到「沒有TTY出現,也沒有askpass程序規定」
是否有人明白這一點?
我需要發出「sudo service nginx status」來檢查服務狀態。我有以下幾點:如何使用python發出sudo命令
import commands
service output = commands.getoutput("sudo service nginx status")
,但我得到「沒有TTY出現,也沒有askpass程序規定」
是否有人明白這一點?
使用commands.getoutput
使得不可能提供sudo命令所需的用戶輸入。 該名稱可以自我解釋,您只對命令輸出感興趣。 stdin
已關閉。
有幾種方案來解決這個:
關閉對於推出這個python腳本sudo的用戶的密碼驗證。 (閱讀有關的/ etc/sudoers文件)
管密碼:(不安全/壞的解決方案,但易) 「回聲YOURPASS |須藤...」
退房subprocess.popen
允許您提供無論是從輸入控制檯或來自文件 https://docs.python.org/2/library/subprocess.html#popen-constructor