マイサービスファイルの内容は次のとおりです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
。