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