5

systemdroot以外のユーザー(例)から(OSはFedora Core 16)を介して、起動時にスクリプトを実行したいmichael

root権限は必要ありません-ブート時とシャットダウン時にのみ、の一部のユニットを実行したいと思いますsystemdrootそして、私はこれのためにユーザーをオンにしたくありません。ユニットの構文の力を使用systemdして、プロセスを開始および監視するだけです(もちろん、rootアクセスは必要ありません)。出来ますか?

ドキュメントにヘルプが見つかりませんでした。私はでのみ見つけましたsystemd(1) -> DIRECTORIES -> "User unit directories"

$ pkg-config systemd --variable=systemduserunitdir
/usr/lib/systemd/user

しかし、それ/usr/lib/systemd/userは:

drwxr-xr-x。2ルートルート

このディレクトリをroot以外のユーザーとして使用する方法を想像することはできません...

4

2 に答える 2

3

このArchLinuxドキュメントが役立つ場合があります。

systemdは、ユーザーにsystemdのインスタンスを実行して、セッションとサービスを管理する機能を提供します。これにより、systemdがユーザーによって実行されているときに、ユーザーは特定のディレクトリ内にあるユニットを開始、停止、有効化、および無効化できます。これは、root以外のユーザーまたはmpdなどの特別なユーザーとして一般的に実行されるデーモンやその他のサービスに便利です。

xinitを介してsystem--userインスタンスを開始することを提案していますが、ユーザーがログインしているかどうかに関係なく、ユーザーサービスを開始したいと思います。

私は通常、@reboot行をcrontabに追加することでこれを行います。

ウィキペディアから

@rebootは、特定のユーザーの下でサーバーまたはデーモンを起動する必要があり、ユーザーがプログラムを起動するようにinitを構成するためのアクセス権を持っていない場合に役立ちます。

たぶん、@rebootを介してsystemd--userを起動できます!!!

于 2013-01-24T20:48:59.893 に答える
2

'michael'のユーザーsystemdユニットファイルを作成します。

ユーザーのsystemdプロセスがログイン時ではなく起動時に開始されるようにするための魔法は次のとおりです。

loginctl enable-linger michael

全詳細

于 2018-10-17T00:27:27.533 に答える