2016-11-05 8 views
0

"sudo service nginx status"を発行してサービスステータスを確認する必要があります。私は、次があります。pythonを使ってsudoコマンドを発行する方法

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

を私は

を「全くのtty存在していないaskpassパッケージプログラムが指定されていません」取得しています誰かがこれを理解していますか?

答えて

1

を使用すると、commands.getoutputを使用すると、sudoコマンドで必要なユーザー入力を提供できなくなります。 名前は自己説明可能です。コマンド出力だけに興味があります。 stdinが閉じられています。

これにはいくつかの解決策があります。

  1. は、このPythonスクリプトを起動さSUDOユーザーのパスワード認証をオフにし

  2. パイプパスワード(約は/ etc/sudoersファイルを読み込む):(危険な/悪いソリューションが、簡単に) "エコーYOURPASS | sudoを..."

  3. チェックアウトsubprocess.popenはあなたがいずれかから入力を提供することができますコンソールまたはファイル

関連する問題