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

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

スクリプトを作成してから、systemdでスクリプトを制御したい場合や、何らかの理由でスクリプトが強制終了されたときにスクリプトを自動的に再起動したい場合があります。

システム化 Linuxでは、管理可能なサービスを構成するのに役立ちます。

この記事では systemdサービスを作成する方法を紹介します。

systemdサービスを作成する

一般的に

以下の手順に従ってください:

  • 実行中のLinuxサービスはパス/etc / systemd / systemにあります。
cd /etc/systemd/system
  • [servicename.service]という名前のファイルを作成します そして、以下を追加します
[Unit]
Description=<description_about_your_service>

[Service]
User=<user_such_as_root>
WorkingDirectory=<directory_of__your_script such as /home/unixcop>
ExecStart=<script_which_needs_to_be_executed>
Restart=always

[Install]
WantedBy=multi-user.target

太字を置き換えます 上記の値と、作成する新しいサービスの値。

サービスユニット .serviceを含むファイルです サフィックスには、 systemdによって管理されているプロセスに関する情報が含まれています 。これは、3つの主要なセクションで構成されています。

  • [ユニット] :このセクションには、サービスの説明など、ユニットのタイプに特に関係のない情報が含まれています
  • [サービス] :ユニットの特定のタイプ(この場合はサービス)に関する情報が含まれています
  • [インストール] :このセクションには、ユニットの設置に関する情報が含まれています

仮想環境を含むPython固有のプロジェクトの場合

  • 上記と同じ手順に従いますが、次を追加します
[Unit]
Description=<description_about_your_project>

[Service]
User=<user_such_as_root>
WorkingDirectory=<path/to/your/project/directory/containing/the/python/script>
ExecStart=Path of virtualenv and your script file name

#Example for ExecStart=/home/user/.virtualenv/bin/python main.py
#replace /home/user/.virtualenv/bin/python with your virtualenv and main.py with your script name

Restart=always

[Install]
WantedBy=multi-user.target

または

[Unit]
Description=<description_about_your_project>

[Service]
User=<user_such_as_root>
WorkingDirectory=<path to your project directory>
ExecStart=/bin/bash -c 'cd /home/unixcop/project/ && source venv/bin/activate && python test.py'

#replace /home/unixcop/project/ with your Path, venv/bin/activate with your source and test.py with your script name

[Install]
WantedBy=multi-user.target
  • サービスファイルのリロードが完了したら、新しいサービスを含めます。
sudo systemctl daemon-reload
  • 新しいサービスを開始します
    sudo systemctl start [your_new_service].service
  • 新しいサービスのステータスを確認します(例:unixcop.serviceと呼ばれる私の新しいサービス)
    sudo systemctl status unixcop.service
  • 再起動するたびにサービスを有効にする
    sudo systemctl enable unixcop.service
  • 再起動するたびにサービスを無効にするには
    sudo systemctl disable unixcop.service

結論

以上です

Linuxで新しいsystemdサービスを作成する方法を説明しました

ありがとう!!


Linux
  1. Linuxコマンドのスクリプトを作成する方法

  2. LinuxRPMパッケージを作成する方法

  3. Linuxでスワップを作成する方法

  1. LinuxでSystemctlを使用してSystemdサービスを管理する方法

  2. Linuxでスワップファイルを作成する方法

  3. Linuxsystemdに新しいサービスを追加する

  1. Linux – SystemdでTtyを減らす方法は?

  2. LinuxでSystemdサービスを一覧表示する方法

  3. systemd サービスを停止する方法