繁体   English   中英

如何使用python发出sudo命令

[英]how to issue sudo command using python

我需要发出“ sudo服务nginx状态”来检查服务状态。 我有以下几点:

import commands
service output = commands.getoutput("sudo service nginx status")

但我收到“没有tty存在且未指定askpass程序”

有人明白吗?

使用commands.getoutput使得无法提供sudo命令所需的用户输入。 名称是不言自明的,您只对命令输出感兴趣。 stdin已关闭。

有几种解决方案:

  1. 关闭正在启动此python脚本的sudo用户的密码验证。 (了解/ etc / sudoers)

  2. 用管道传输您的密码:(不安全/错误的解决方案,但很容易)“ echo YOU​​RPASS | sudo ...”

  3. 检出subprocess.popen使您可以从控制台或文件https://docs.python.org/2/library/subprocess.html#popen-constructor提供输入

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM