2014-11-27 5 views
3

Я пытаюсь настроить redis sentinel как услугу Windows на Azure VM (IaaS).Как установить Redis Sentinel в качестве службы Windows?

Я использую порт MS OpenTech из Redis для Windows, и выполнив следующую команду ...

Redis-сервер --service установить --service имя rdsent redis.sentinel.conf --sentinel

Эта команда устанавливает сервис на моей системе, но когда я пытаюсь запустить эту услугу либо с помощью панели управления службами или с помощью следующей команды ...

Redis-сервер --service-бег - service-name rdsent redis.sentinel.conf --sentinel

Затем служба не запускается со следующей ошибкой ...

HandleServiceCommands: системная ошибка пойманы. код ошибки = 1063, сообщение = StartServiceCtrlDispatcherA не удалось: неизвестная ошибка

Я что-то упустил? Пожалуйста, помогите мне начать эту услугу, чтобы она работала правильно.

ответ

2

Согласно MSOpenTech, следующая команда должна установить Redis Стража как сервис:

redis-server --service-install --service-name Sentinel1 sentinel.1.conf --sentinel 

Но когда я приказываю установленная служба не заводилась: она немедленно потерпит неудачу с ошибкой 1067, «О процесс неожиданно прекратился ». Глядя на запись службы, я предполагаю, что проблема заключается в том, что параметр -service-name не фильтруется и заканчивается как часть пути исполняемого сервиса.

То, что я нашел в работу установка службы вручную с помощью команды SC:

SC CREATE Sentinel1 binpath= "\"C:\Program Files\Redis\redis-server.exe\" --service-run sentinel.1.conf --sentinel" 

Не забывает необходимое пространство после «binpath =», и очевидно, что путь будет отражать где вы Установлен redis-server.exe. Также после установки службы я отредактировал запись службы, так что Redis Sentinel будет работать под учетной записью Network Service.

2

У меня была та же проблема, и моя была связана с моей конфигурацией дозорного. Ряд статей, которые я нашел, имеют некоторые неправильные примеры, поэтому моя установка сервиса не будет работать до тех пор, пока конфигурация не будет правильной. Во всяком случае, вот что вам нужно как минимум для дозорной конфигурации (для Windows, Redis 2.8.17):

sentinel monitor <name of redis cache> <server IP> <port> 2 
    sentinel down-after-milliseconds <name of redis cache> 4000 
    sentinel failover-timeout <name of redis cache> 180000 
    sentinel parallel-syncs <name of redis cache> 1 

После того как вы эта настройка, исходная команда обслуживания Redis выше будет работать.

0

Я использую v3.0.501 и столкнулся с двумя проблемами ниже. Несмотря на то, что он присутствовал, это вызвало отказ службы при запуске без ошибки, записанной либо в журнал файлов, либо в журнал событий.

  1. Файл конфигурации должен быть последним параметром командной строки. Если последний параметр был последним, например -service-name, он будет работать нормально при вызове командной строки, но последовательно будет работать в качестве службы.
  2. Поскольку служба устанавливает по умолчанию Network Service, убедитесь, что она имеет доступ к каталогу, в котором будет записываться файл журнала.

После того, как эти два элемента были учтены как redis, так как сервис работает ровно, как шелк.

0

Недавно я нашел способ установки службы Windows для Redis и Sentinel. Во время моей установки я столкнулся с подобной проблемой. Я, наконец, понял это: это вызвано конфигурационным файлом.

Я поставил всю свою конфигурацию в моем GitHub проекта: https://github.com/dingyuliang/Windows-Redis-Sentinel-Config

+0

Пожалуйста, смотрите [Как ответить] (https://stackoverflow.com/help/how-to-answer): «Ссылки на внешние ресурсы но, пожалуйста, добавьте контекст вокруг ссылки, чтобы у ваших коллег было некоторое представление о том, что это такое и почему оно есть. Всегда указывайте наиболее релевантную часть важной ссылки, если целевой сайт недоступен или постоянно находится в автономном режиме ». – xskxzr

Смежные вопросы