PythonスクリプトでLinuxコマンドを定義し、スクリプトからコマンドを実行できます。

PythonスクリプトでLinuxコマンドを定義し、スクリプトからコマンドを実行できます。

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"])

関連情報