systemd는 "Multiple ExecStart= settings"를 거부합니다.

systemd는 "Multiple ExecStart= settings"를 거부합니다.

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

관련 정보