Попытка запустить командный файл как службу Windows

Я создал простой командный файл для запуска узла Redis.

@echo off
start cmd.exe /k "cd C:\Users\cmguser\Desktop\7000 & redis-server ./redis.conf"

Этот командный файл работает нормально, если я запускаю его в cmd от имени администратора. Я создаю этот файл bat как службу Windows через NSSM, но служба выдает следующую ошибку: «Windows не может запустить службу на локальном компьютере, служба не вернула ошибку». Ссылка на эту ссылку.

Должен ли я упомянуть запуск от имени администратора в моем командном файле, или есть какие-либо другие проблемы с помощью вышеупомянутого метода?

Также я попытался создать службу с помощью следующей команды, но она выдала ошибку 1053:

sc create service_name binpath=C:\Users\user\Desktop\redis_config_7000  start= auto

person Rohit Bagjani    schedule 30.05.2017    source источник
comment
Я не уверен в вашем конфиге. но вы вызываете redis_config_7000 в качестве пути, это где находится ваш двоичный файл или командный файл?   -  person Gerhard    schedule 30.05.2017
comment
redis_config_7000 просто имеет минимальную конфигурацию для создания узла redis. Да, в этом месте находится мой командный файл.   -  person Rohit Bagjani    schedule 30.05.2017
comment
Существует ряд решений, многие из которых бесплатны. Попробуйте google.com/#q=run+batch+as+service   -  person lit    schedule 30.05.2017
comment
Я знаю, что это очень общие вопросы, и я искал их. Я придумал два вышеупомянутых решения с соответствующими проблемами, о которых я упоминал выше. Другие инструменты - это AlwaysUp, которое является проприетарным программным обеспечением, и есть инструменты, связанные с srvany и другими инструментами ресурсов Windows, которые недоступны на тех серверах в Program Files, на которых я пытаюсь это сделать.   -  person Rohit Bagjani    schedule 31.05.2017
comment
AlwaysUp сработал для меня лучше, чем другие варианты, о которых я упоминал выше. Хотя это проприетарный инструмент.   -  person Rohit Bagjani    schedule 02.06.2017


Ответы (1)


Правильный способ установки Redis как службы в Windows:

redis-server --service-install --service-name "[your desired service name]" "[full path to your redis conf]"

Как предлагали другие, redis.conf должен содержать как минимум минимальные параметры. Попробуйте это с помощью конфигурации по умолчанию и получите более конкретную информацию, включив конфигурацию по умолчанию в конфигурационный файл конкретного экземпляра для include


Другой способ - правильно использовать команду sc create:

SC CREATE [your desired service name] binpath= "\"C:\Program Files\Redis\redis-server.exe\" --service-run \"[full path to your config]\""

Обратите внимание на пробел после binpath=!

person phil    schedule 07.06.2017