Pythonスクリプトを作成する必要があります。たとえば、コマンド出力が「autofs.serviceの単位ファイルの状態を取得できません。そのファイルまたはディレクトリがありません」の場合は、「systemctl is-enabled autofs」コマンドを実行する必要があります。スクリプトは「Not Install Service」を印刷し、出力が「Enabled」の場合、スクリプトは「systemctl --now disable autofs」を実行する必要があります。 osとsubprocessモジュールを試してみましたが、うまく機能しませんでした。どんな助けでも大変感謝します。
答え1
~からサブプロセスPythonドキュメント:
subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False) は引数を使用してコマンドを実行し、その出力をバイト文字列として返します。
戻りコードが0でない場合、CalledProcessErrorが発生します。 CalledProcessError オブジェクトには、returncode プロパティの戻りコードと出力プロパティのすべての出力が含まれます。
初期コマンドの出力を確認できます。これに基づいて印刷またはno service installed
実行できますsystemctl --now disable autofs
。
import subprocess
try:
subprocess.check_output(["systemctl", "is-enabled", "autofs"], stderr=subprocess.DEVNULL)
except subprocess.CalledProcessError as e:
print('no service installed')
else:
subprocess.run(["systemctl --now disable autofs"])