Redis用のシステムサービスファイルを作成しようとしています。
これは私のファイルです:
[Unit]
PartOf=smp-data-services.target
Description=Redis persistent key-value database
After=network.target
[Service]
ExecStart=/opt/eg/share/redis/bin/redis-server
ExecStop=/opt/eg/share/redis/bin/redis-cli
Restart=on-failure
User=eg
Group=eg
[Install]
WantedBy=multi-user.target
私が何をしても、次のような結果が表示されます。
# systemctl daemon-reload
systemd: redis.service has more than one ExecStart= setting, which is only allowed for Type=oneshot services. Refusing.
次の問題なくコマンドラインからredisを起動できます。
/opt/eg/share/redis/bin/redis-server
redisデーモンの分岐プロセスは非標準なので、Type = forkingまたはoneshotを避ける必要があることを読んでいます。
答え1
[service]セクションでExecStartコマンドをクリーンアップする必要があります。
[Unit]
PartOf=smp-data-services.target
Description=Redis persistent key-value database
After=network.target
[Service]
ExecStart=
ExecStart=/opt/eg/share/redis/bin/redis-server
ExecStop=/opt/eg/share/redis/bin/redis-cli
Restart=on-failure
User=eg
Group=eg
[Install]
WantedBy=multi-user.target
答え2
ありがとうラ・ロンジャ、彼は正しいです。 /etc/systemd/system/redis.service.d/redis_systemd.conf に .conf ファイルがあります。一度削除した後、ほぼ動作しました!
答え3
実行サービスセクションにsystemctl edit redis
startwith行がある場合は、それを削除します。ExecStart=
このExecStart=
行は変更できません。systemctl edit