ユーザーベースのsystemdサービスの作成

システム全体のsystemdファイルに加えて、systemdを使用すると、ルート・アクセスおよび権限を必要とせずにユーザー・レベルから実行できるユーザーベースのサービスを作成できます。これらのユーザーベースのサービスは、ユーザーの制御下にあり、システム・サービスとは独立して構成できます。

ユーザーベースのsystemdサービスのいくつかの特徴を次に示します。

  • ユーザーベースのsystemdサービスは、特定のユーザー・アカウントにリンクされます。
  • これらは、$HOME/.config/systemd/user/内の関連するユーザーのホーム・ディレクトリの下に作成されます。
  • これらのサービスを有効にすると、関連付けられたユーザーがログインしたときにサービスが開始されます。この動作は、システムのブート時に開始する有効なsystemdサービスの動作とは異なります。

この機能は、podmanコンテナ・サービスの作成時に役立ちます。podmanの詳細は、『Oracle Linux Podmanユーザー・ガイド』を参照してください。

ユーザーベースのサービスを作成するには:

  1. ~/.config/systemd/userディレクトリにサービスのユニット・ファイルを作成します。次に例を示します:
    touch ~/.config/systemd/user/myservice.service
  2. ユニット・ファイルを開き、使用するオプションの値(DescriptionExecStartWantedByなど)を指定します。
    詳細は、「サービス・ユニット・ファイルの構成可能なオプション」およびsystemd.service(5)およびsystemd.unit(5)の各マニュアル・ページを参照してください。
  3. ログイン時にサービスを自動的に開始できるようにします。
    sudo systemctl --user enable myservice.service

    ノート:

    ログアウトすると、rootユーザーがユーザーに対して実行を続行するプロセスを有効にしていないかぎり、サービスは停止されます。

    詳細は、Oracle Linuxでのsystemdの使用を参照してください。

  4. サービスを開始します。
    sudo systemctl --user start myservice.service
  5. サービスが稼働していることを確認します。
    sudo systemctl --user status myservice.service