私のSystemdデバイスarkos-redisがロードされていますが、非アクティブ(凍結)されたのはなぜですか?

私のSystemdデバイスarkos-redisがロードされていますが、非アクティブ(凍結)されたのはなぜですか?

マイサービスファイルの内容は次のとおりですarkos-redis.service

GNU nano 2.4.2   File: /usr/lib/systemd/user/arkos-redis.service              

[Unit]
Description=Advanced key-value store

[Service]
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown

[Install]
WantedBy=default.target

しかし、起動すると、次の状態が表示されます。

[vagrant@arkos-vagrant etc]$ systemctl --user status arkos-redis.service
��arkos-redis.service - Advanced key-value store
   Loaded: loaded (/usr/lib/systemd/user/arkos-redis.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

答え1

サービスファイルはにあるため、ユーザーサービスと見なされ、/usr/lib/systemd/user独自のインスタンスによって開始systemd(次に実行)されますsystemd --user。これは、何よりもあなたのユーザー(代わりに)rootとログインしているすべてのユーザーに対してプロセスが開始されることを意味します。の設定ファイルへの参照に基づいて、このプロセスのインスタンスは特定の時間に1つだけ実行する必要があり、このプロセスは別のシステムアカウントで実行する必要があると/etc推測されます。rootこのプロセスを開始する必要がある場合は、rootこのファイルを/usr/lib/systemd/system(または/etc/systemd/system自分のサービスファイルなので、より良い)に移動して、この回答の残りの部分を無視してください。

自分のユーザーとしてサービスファイルを開始する必要がある場合は、ユーザーモードでは次のターゲットのみを使用できます。

   When systemd runs as a user instance, the following special units are available, which have
   similar definitions as their system counterparts: default.target, shutdown.target,
   sockets.target, timers.target, paths.target, bluetooth.target, printer.target,
   smartcard.target, sound.target.

multi-user.target利用できないため、サービスnetwork.targetは自動的に開始されません。開始するには、multi-user.targetに変更してdefault.targetから削除してくださいAfter=network.target。それからsystemctl --user enable arkos-redis.service

関連情報