Есть ли какой-нибудь быстрый способ при наличии исполняемого файла создать службу Windows, которая при запуске запускает ее?
windows
windows-services
Немецкий латорре
источник
источник
Ответы:
Чтобы создать службу Windows из исполняемого файла, вы можете использовать
sc.exe
:Вы должны иметь кавычки вокруг фактического
exe
пути и пробел послеbinPath=
.Более подробную информацию о
sc
команде можно найти в Microsoft KB251192 .Обратите внимание, что он не будет работать только для любого исполняемого файла: исполняемый файл должен быть службой Windows ( т.е. реализовывать ServiceMain ). При регистрации исполняемого файла, не являющегося сервисом, в качестве сервиса, при попытке запуска сервиса вы получите следующую ошибку:
Существуют инструменты, которые могут создавать службы Windows из произвольных необслуживаемых исполняемых файлов. Примеры других инструментов см. В других ответах.
источник
binpath=
того, как окружать исполняемый путь двойными кавычками, совершенно неправильный, по крайней мере для окон 10. цитирование требуется тогда и только тогда, когда путь содержит специальные символы, такие как пробел. Кроме того, регистр (lowe / upper / mixed-case) нигде не имеет значения, в том числе и в именах переменных, иdisplayname="my service"
является еще одним плюсом для передачи в командной строке при создании службы для просмотра в качестве первой строки (Name
) вservices.msc
.binPath=
Windows мне потребовалось место на Windows 7, но не на Windows 10Используйте NSSM ( диспетчер служб не для сосания), чтобы запустить .BAT или любой файл .EXE в качестве службы.
http://nssm.cc/
nssm.exe install [serviceName]
источник
Расширяя (Кевин Тонг) ответ.
Шаг 1: Загрузите и распакуйте nssm-2.24.zip
Шаг 2: Из командной строки введите:
C:\> nssm.exe install [servicename]
он откроет графический интерфейс, как показано ниже (например, сервер UT2003), а затем просто перейдите к нему: yourapplication.exe
Более подробная информация на: https://nssm.cc/usage
источник
nssm.exe install [serviceName]
. Это решение работает, но если у вас есть приложение с графическим интерфейсом, оно не будет работать на Win Serever2003. Если позже вы захотите удалить его, используйтеnssm.exe remove [youservicename]
nginx
не нужно и вводит в заблуждение. Команда будет работать и без нее. Это необязательный параметр, если вы хотите указать имя службы из командной строки.Многие существующие ответы включают вмешательство человека во время установки. Это может быть подвержен ошибкам процесс. Если у вас есть много исполняемых файлов, которые вы хотите установить в качестве сервисов, последнее, что вам нужно сделать, это сделать их вручную во время установки.
В связи с описанным выше сценарием я создал serman , инструмент командной строки для установки исполняемого файла в качестве службы. Все, что вам нужно написать (и написать только один раз), это простой файл конфигурации службы вместе с вашим исполняемым файлом. Бегать
установит сервис.
stdout
иstderr
все вошли. Для получения дополнительной информации взгляните на веб-сайт проекта .Рабочий файл конфигурации очень прост, как показано ниже. Но он также имеет много полезных функций, таких как
<env>
и<persistent_env>
ниже.источник
эти дополнения оказываются полезными .. должны быть выполнены как администратор
Если в названии вашего сервиса есть пробелы, заключите его в "кавычки".
источник
sc create <service_name> binpath= <binary_path>
Я протестировал хороший продукт для этого: AlwaysUp . Не бесплатно, но у них есть 30-дневный пробный период, так что вы можете попробовать ...
источник
Вы можете проверить мою маленькую бесплатную утилиту для операций create \ edit \ delete. Вот пример создания:
Зайдите в Сервис -> Изменить -> Создать
Исполняемый файл (Google Drive): [Скачать]
Исходный код: [Скачать]
Сообщение блога: [BlogLink]
Класс редактора сервиса: WinServiceUtils.cs
источник