カスタムパスでカスタムコンポーネントを実行する

カスタムパスでカスタムコンポーネントを実行する

~/.config/systemd/user ディレクトリの下の RHEL 8 でユーザー単位を正常に有効にしました。 Lingerを有効にすると、ログインせずにサービスを開始するオプションも提供されます。私の質問は、〜/ .config / systemd / user以外のパスにユーザーユニット(例:.serviceファイル)を置き、そのようにユーザーユニットを起動できることです。

ベストアンサー1

はい。man systemd.unitあなたの友人であり、ヘルパーになってください!

   User Unit Search Path
       ~/.config/systemd/user.control/*
       $XDG_RUNTIME_DIR/systemd/user.control/*
       $XDG_RUNTIME_DIR/systemd/transient/*
       $XDG_RUNTIME_DIR/systemd/generator.early/*
       ~/.config/systemd/user/*
       $XDG_CONFIG_DIRS/systemd/user/*
       /etc/systemd/user/*
       $XDG_RUNTIME_DIR/systemd/user/*
       /run/systemd/user/*
       $XDG_RUNTIME_DIR/systemd/generator/*
       $XDG_DATA_HOME/systemd/user/*
       $XDG_DATA_DIRS/systemd/user/*
       ...
       /usr/lib/systemd/user/*
       $XDG_RUNTIME_DIR/systemd/generator.late/*

そして

User Managerインスタンスの一連のロードパスは、さまざまな環境変数を使用して増やしたり変更したりできます。環境変数は、環境ジェネレータを使用して設定できます。 systemd.environment-generator(7) をご覧ください。特に $XDG_DATA_HOME と $XDG_DATA_DIRS は systemd-environment-d-generator(8) を使って簡単に設定できます。したがって、ここにリストされているディレクトリはデフォルトのディレクトリにすぎません。コンパイルオプションと現在の環境使用量に基づいて使用される実際のリストを確認してください。

systemd-analyze --user unit-paths

また、ディレクトリ内のユニットファイルへのシンボリックリンクを作成して、ユニットロードパスにないディレクトリから別のユニットをsystemdにロードすることもできます。これを達成するには、systemctlリンクを使用できます。 systemctl(1) を参照してください。 systemdが起動したら、リンク単位のファイルを含むファイルシステムにアクセスできる必要があります。たとえば、/home/または/var/の下のディレクトリは、ルートファイルシステムにない限り許可されません。


今興味深い質問は、あなたが説明するものが何であるかです。しなければならないはいユーザーユニットファイルであるか、実際にインストールしたい場合システムユーザーとして実行されるサービス単位ファイル。

おすすめ記事