GNU/Linux >> Linux の 問題 >  >> Linux

Systemdを使用してPythonスクリプトを自動実行するように設定する方法

質問–systemdを使用してPythonスクリプトを自動実行する方法。 Pythonスクリプトを使用して独自のsystemdサービスを作成する方法。 systemdとして起動するようにPythonスクリプトを構成する方法。 systemctlを使用してPythonサービスを管理する方法は?

このチュートリアルを使用して、systemdでPythonスクリプトをシステムサービスとして実行します。 systemctlコマンドを使用して、スクリプトを簡単に開始、停止、または再起動できます。これにより、システムの起動時にPythonスクリプトを自動実行することもできます。

ステップ1–ダミーのPythonアプリケーション

まず、指定されたポートでリッスンするダミーのPythonスクリプトを使用しました。次のようにPythonファイルを編集します

sudo vi /usr/bin/dummy_service.py

ダミー用に次のコンテンツを追加します。要件に応じて独自のPythonスクリプトを使用できます。

Python
123456789101112 #!/ usr / bin / python3 import sockets =socket.socket(socket.AF_INET、socket.SOCK_STREAM)s.bind(( "localhost"、9988))s.listen(1)while True:conn、addr =s.accept()data =conn.recv(1024)conn.close()my_function_that_handles_data(data)

ステップ2–サービスファイルの作成

次に、systemdのサービスファイルを次のように作成します。ファイルには.serviceが必要です / lib / systemd / system /の下の拡張子 ディレクトリ

sudo vi /lib/systemd/system/dummy.service

次のコンテンツを追加します。 Pythonスクリプトのファイル名と広告の場所を変更します。説明も更新してください。

[Unit]
Description=Dummy Service
After=multi-user.target
[email protected]

[Service]
Type=simple
ExecStart=/usr/bin/python3 /usr/bin/dummy_service.py
StandardInput=tty-force

[Install]
WantedBy=multi-user.target

ステップ3–新しく追加されたサービスを有効にする

システムサービスがサービスに追加されました。 systemctlデーモンをリロードして、新しいファイルを読み取りましょう。 .serviceファイルに変更を加えた後は、毎回このデーモンをリロードする必要があります。

sudo systemctl daemon-reload

次に、システムの起動時にサービスを開始できるようにします。また、次のコマンドを使用してサービスを開始します。

sudo systemctl enable dummy.service
sudo systemctl start dummy.service

ステップ4–新しいサービスの開始/開始/ステータス

最後に、次のコマンドでサービスのステータスを確認します。

sudo systemctl status dummy.service

以下のコマンドを使用して、サービスマニュアルを停止、開始、および再起動します。

sudo systemctl stop dummy.service          #To stop running service 
sudo systemctl start dummy.service         #To start running service 
sudo systemctl restart dummy.service       #To restart running service 

Linux
  1. systemdを使用してスタートアップを管理する

  2. LinuxでSystemdサービスを作成する方法

  3. Pythonスクリプトを使用してLinuxターミナルを終了するには?

  1. Pythonスクリプトを使用してSFTPサーバーからファイルをダウンロードする方法

  2. Systemdのスタートアップスクリプトを書く方法は?

  3. systemd サービスが再起動された場合にメールを送信する方法は?

  1. Linux – Fsckスクリプトの場所?

  2. trace.py を使用して Python スクリプトをトレースする方法

  3. Linux で Python スクリプトをサービスまたはデーモンのように実行する方法