Запустить приложение как службу Windows 10

Обновлено: 21.11.2024

Нужны ли вам какие-либо сторонние приложения или программное обеспечение для автоматического запуска при загрузке системы? Лучший способ сделать это — развернуть их как службу Windows.

Запуск ваших приложений в качестве службы Windows обеспечивает постоянную доступность, если только вы не захотите остановить службу самостоятельно. Вы можете запустить или остановить любую службу Windows через консоль служб, доступ к которой можно получить, запустив services.msc.

Проблема в том, что в ОС Windows нет простого способа сделать это. Конечно, вы можете развернуть собственное приложение Windows как службу с помощью New-Service.

Но если вы хотите, чтобы другие сторонние приложения работали как служба Windows, вам потребуется помощь определенного инструмента или утилиты.

Проще всего это сделать с помощью NSSM.

Что такое NSSM (Non-Sucking Service Manager)?

NSSM — это помощник службы, который позволяет преобразовать любой исполняемый файл в службу Windows. Отличие NSSM от других подобных утилит в том, что NSSM отслеживает службы. Таким образом, в случае сбоя какой-либо службы она обнаружит сбой и сразу же перезапустит ее.

На мой взгляд, самым большим преимуществом использования NSSM является простота использования и простота развертывания.

Теперь я собираюсь продемонстрировать, как его использовать.

Для этого руководства мы собираемся развернуть Nginx как службу. Nginx — это веб-сервер, такой же, как apache, и он также доступен для Windows.

Проблема, с которой сталкивается большинство пользователей Windows, заключается в том, что Nginx не регистрируется в качестве службы Windows. Вам всегда нужно запускать его вручную, чтобы запускать веб-приложения Localhost.

Что может быть лучшим кандидатом, чем этот, верно?

Как запустить Nginx как службу Windows

Теперь я пошагово покажу вам, как запустить Nginx как службу Windows с помощью NSSM.

Шаг 1. Загрузите Nginx

Первым шагом, конечно же, является загрузка Nginx для Windows. Вы можете скачать его ЗДЕСЬ.

После загрузки вам нужно будет извлечь его в папку. Для этого упражнения вам нужно извлечь его и переименовать папку в «nginx». Затем поместите папку на диск C: по этому пути:

В папке nginx вы должны увидеть файл nginx.exe. Это основной файл, который нам понадобится позже для запуска в качестве службы.

Шаг 2. Загрузите NSSM

Теперь нам нужно загрузить NSSM. Вы можете скачать его ЗДЕСЬ.

Если вы используете Windows 10, обязательно загрузите новую версию, как показано на снимке экрана.

После загрузки извлеките его в папку. Для этого упражнения я скачал и распаковал его в папку с тем же именем, что и у скачанного файла.

Шаг 3. Запуск NSSM

Теперь пришло время запустить менеджера Non-sucking Service. Для этого нам нужно открыть командную строку и перейти по пути, где находится исполняемый файл NSSM.

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

Теперь мы готовы создать новый сервис. Перейдите к следующему шагу.

Шаг 4. Установите службу Nginx с помощью NSSM

Это самый важный шаг. Если все пойдет хорошо, у нас появится новый сервис nginx в диспетчере сервисов.

В командной строке выполните следующую команду:

Где nginxservice — это имя сервиса, которое мы выбрали для нашего нового сервиса. Вы можете ввести любое имя.

Как только вы наберете и введете приведенную выше команду, появится диалоговое окно, как показано на снимке экрана. Здесь вам нужно будет просмотреть и добавить путь к файлу nginx.exe в путь C:/nginx/.

И все. Все, что вам нужно сделать сейчас, это нажать кнопку «Установить службу». Когда это будет сделано, вы должны получить сообщение об успешном завершении, подобное этому:

И ваша новая служба установлена.

Шаг 5. Проверьте службу в диспетчере служб

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

При этом должна открыться консоль служб Windows. Теперь просмотрите сервисы и найдите тот, который вы создали.

Возможно, новая служба не будет запущена в первый раз, когда вы ее увидите. Чтобы запустить службу, просто щелкните ее правой кнопкой мыши и выберите "Пуск".

Это должно запустить вашу новую службу, и если вы настроили какую-либо веб-страницу на своем локальном хосте в nginx, вы сможете просматривать локальный хост в браузере.

Довольно просто, верно? Эта небольшая утилита довольно удивительна по своим функциональным возможностям. В нем вы можете настроить другие параметры, такие как автоматический запуск, ручной запуск, отложенный запуск и т. д.

В этой статье описаны действия по созданию определяемой пользователем службы Windows NT.

Относится к: Windows 10 — все выпуски
Исходный номер базы знаний: 137890

Эта статья содержит информацию об изменении реестра.Прежде чем редактировать реестр, убедитесь, что вы понимаете, как его восстановить в случае возникновения проблемы. Информацию о том, как это сделать, см. в разделах интерактивной справки «Восстановление реестра» или «Восстановление ключа реестра» в редакторе реестра.

Обзор

Комплект ресурсов Windows NT содержит две утилиты, позволяющие создавать определяемые пользователем службы Windows NT для приложений Windows NT и некоторых 16-разрядных приложений, но не для пакетных файлов.

Instrsrv.exe устанавливает и удаляет системные службы из Windows NT, а Srvany.exe позволяет запускать любое приложение Windows NT как службу.

Этапы создания определяемой пользователем службы

Чтобы создать пользовательскую службу Windows NT, выполните следующие действия:

В командной строке MS-DOS (запустив CMD.EXE) введите следующую команду:

где путь — это диск и каталог набора ресурсов Windows NT (например, C:\RESKIT ), а Моя служба — это имя создаваемой вами службы.

Пример: C:\Program Files\Resource Kit\Instsrv.exe Блокнот C:\Program Files\Resource Kit\Srvany.exe

Чтобы убедиться, что служба создана правильно, проверьте реестр и убедитесь, что значение ImagePath в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\имя службы указывает на SRVANY.EXE. Если это не задано правильно, служба остановится вскоре после запуска и вернет идентификатор события 7000 (имя службы не удалось запустить).

Неправильное использование редактора реестра может вызвать серьезные проблемы, которые могут потребовать переустановки операционной системы. Microsoft не может гарантировать решение проблем, возникающих в результате неправильного использования редактора реестра. Используйте Редактор реестра на свой страх и риск.

Для получения информации о том, как редактировать реестр, просмотрите следующие разделы интерактивной справки в редакторе реестра:

  • Изменение ключей и значений
  • Добавить и удалить информацию в реестре
  • Изменить данные реестра

Вы должны сделать резервную копию реестра, прежде чем редактировать его.

Запустите редактор реестра (Regedt32.exe) и найдите следующий подраздел:

В меню "Правка" выберите "Добавить ключ". Введите следующие данные и нажмите кнопку ОК:

Нажмите кнопку "Параметры".

В меню "Правка" выберите "Добавить значение". Введите следующие данные и нажмите кнопку ОК:

  • Имя значения: Приложение
  • Тип данных: REG_SZ
  • Строка:

Закройте редактор реестра.

По умолчанию вновь созданная служба настроена на автоматический запуск при перезапуске системы. Чтобы изменить этот параметр на «Вручную», запустите апплет «Службы» из панели управления. Затем измените значение Startup на Manual. Службу, настроенную на Вручную, можно запустить одним из нескольких способов:

В приложении "Службы" панели управления

В командной строке MS-DOS введите следующую команду:

Используйте служебную программу Sc.exe из набора ресурсов. Введите следующую команду в командной строке MS-DOS:

это диск и каталог набора ресурсов Windows NT (например, C:\Reskit ).

Если вы хотите запустить приложение как службу в ОС Windows, продолжайте читать это руководство. Как вы знаете, распространенными способами запуска программы при запуске Windows является размещение программы в папке автозагрузки Windows, запуск программы при запуске с помощью реестра Windows или запуск приложения с помощью планировщика заданий. Хотя эти методы эффективны в большинстве случаев, в некоторых случаях возникает необходимость запустить приложение при запуске в качестве службы Windows, до входа пользователя в систему или взаимодействия с ним.

Это руководство содержит пошаговые инструкции по созданию службы Windows с помощью любой программы в Windows 10, 8, 7 и Server OS.

Как запустить любое приложение как службу Windows.

Способ 1. Запустите приложение как службу Windows с помощью утилиты RunAsService.
Способ 2. Запуск программы как службы с помощью утилиты NSSM.

Метод 1. Как запустить любое приложение в качестве службы Windows с помощью утилиты «Запуск от имени службы».

Первый способ создать пользовательскую службу из любой программы — использовать утилиту RunAsService.

<р>1. Загрузите инструмент RunAsService на свой компьютер.
2. Переместите или скопируйте загруженный файл RunAsService.exe в корневую папку диска C:\. *

* Примечание (важно). Вы можете поместить средство "RunAsService.exe" в любое место на диске, но убедитесь, что средство находится в том же месте, чтобы установленные службы продолжали работать. .

Ширина

<р>3. Откройте командную строку от имени администратора.
4. В командной строке введите: cd\

<р>5. Теперь установите приложение, которое вы хотите использовать в качестве службы, с помощью следующей команды: *

  • Установить RunAsService " ServiceName " " Display-Name "" PathToExecutable "

Примечания:

<р>1.В приведенной выше команде замените значения красными буквами следующим образом:

Имя: введите имя службы, которую хотите создать. Вы можете использовать имя службы для запуска или остановки службы вручную в будущем с помощью команд «net start» или «net stop».

Отображаемое имя: если хотите, введите другое имя для списка служб Windows. Вот как будет отображаться название сервиса в списке сервисов. Если «Отображаемое имя» не указано, отображаемое имя будет таким же, как «ServiceName» созданной вами службы.

PathToExecutable: введите полный путь к приложению, которое вы хотите запустить как службу Windows.

Например: Чтобы установить приложение «Notepad.exe» как службу Windows с именем «Блокнот», введите следующую команду:

  • RunAsService устанавливает "Блокнот" "C:\Windows\System32\notepad.exe"

<р>6. После выполнения команды в списке служб появится новая служба Windows с именем, которое вы указали в команде «RunAsService». Чтобы запустить только что созданную службу при запуске:

а. Щелкните правой кнопкой мыши службу и выберите "Свойства".

б. Убедитесь, что для параметра Тип запуска установлено значение Автоматически.

<р>в. Перезагрузите компьютер, чтобы проверить службу. *

  • net stop " ServiceName "
  • Удалить RunAsService " ServiceName "

Способ 2. Как запустить любую программу как службу с помощью NSSM.

Второй способ запуска любого приложения в качестве службы в Windows – использование инструмента Non-Sucking Service Manager.

<р>1. Скачать НССМ.
2. Извлеките загруженный ZIP-файл.
3. Переименуйте извлеченную папку (например, «nssm-2.24») в NSSM.
4. Скопируйте папку NSSM в корневую папку диска C:\
5. Откройте командную строку от имени администратора и перейдите в папку NSSM, введя по порядку следующие команды (нажимайте Enter после ввода каждой команды):

<р>6. Теперь, в зависимости от вашей версии Windows (32- или 64-разрядной), перейдите к одной из двух содержащихся подпапок, введя соответствующую команду (и нажав Enter).

  • Если у вас 64-разрядная версия Windows, введите: cd win64
  • Если у вас 32-разрядная версия Windows, введите: cd win32
<р>7. Теперь введите следующую команду: *

<р>8. В открывшемся окне:

<р>8а. Нажмите кнопку с точками в виде дерева (3) рядом с ПУТЬ и выберите исполняемый файл приложения, которое вы хотите запустить как службу.

8б. Когда закончите, введите Имя для новой службы и нажмите Установить службу.

8в. Нажмите «ОК» на сообщение «Сервис успешно установлен», и все готово! *

а. Выполните шаги 5 и 6 выше, а затем введите следующую команду: *

* Примечание. Где ServiceName = имя службы, которую вы создали с помощью утилиты NSSM.
например. nssm удалить БЛОКНОТ в этом примере.

б. Наконец, нажмите Да, чтобы удалить службу.

Вот оно! Дайте мне знать, помогло ли вам это руководство, оставив свой комментарий о своем опыте. Поставьте лайк и поделитесь этим руководством, чтобы помочь другим.

Если эта статья оказалась для вас полезной, поддержите нас, сделав пожертвование. Даже 1 доллар США может иметь для нас огромное значение, поскольку мы продолжаем помогать другим, оставляя этот сайт бесплатным:

Мы нанимаем

Мы ищем технических писателей на неполный или полный рабочий день, чтобы присоединиться к нашей команде! Речь идет об удаленной должности, на которую могут претендовать квалифицированные технические писатели из любой точки мира. Нажмите здесь, чтобы узнать больше.

Если вы хотите постоянно оставаться защищенным от угроз вредоносных программ, существующих и будущих, мы рекомендуем вам установить Malwarebytes Anti-Malware PRO, нажав кнопку ниже (мы получаем комиссию от продаж, полученных по этой ссылке, но без дополнительной оплаты). У нас есть опыт работы с этим программным обеспечением, и мы рекомендуем его, поскольку оно полезно и полезно):

Есть ли какой-либо быстрый способ, используя исполняемый файл, создать службу Windows, которая при запуске запускает его?

10 ответов 10

Чтобы создать службу Windows из исполняемого файла, вы можете использовать sc.exe :

Вы должны иметь кавычки вокруг фактического пути к exe и пробел после binPath= .

Обратите внимание, что это не будет работать для любого исполняемого файла: исполняемый файл должен быть службой Windows (т. е. реализовывать ServiceMain). При регистрации неслужебного исполняемого файла в качестве службы вы получите следующую ошибку при попытке запустить службу:

Ошибка 1053. Служба не ответила на запрос запуска или управления своевременно.

Существуют инструменты, которые могут создавать службы Windows из произвольных неслужебных исполняемых файлов. Примеры таких инструментов см. в других ответах.

вам (почти наверняка) придется запускать командную строку от имени администратора, чтобы эта команда работала

Путь также должен быть полным путем — мне не удалось запустить службу с использованием относительного пути.

пробел после binpath= вместе с необходимостью заключать путь к исполняемому файлу в двойные кавычки совершенно неверен, по крайней мере, для Windows 10. заключение в кавычки требуется тогда и только тогда, когда путь содержит специальные символы, такие как пробелы. Кроме того, регистр (нижний/верхний/смешанный регистр) нигде не имеет значения, в том числе и в именах переменных, а displayname="my service" — еще одна полезная функция, которую можно передать в командной строке при создании службы для просмотра в первой строке ( Name ) в services.msc .

Используйте NSSM (независимый Service Manager) для запуска .BAT или любого .EXE-файла в качестве службы.

  • Шаг 1. Загрузите NSSM
  • Шаг 2. Установите службу с помощью nssm.exe install [serviceName]
  • Шаг 3. Откроется графический интерфейс, который вы будете использовать для поиска исполняемого файла.

является ли этот набор услугой навсегда? каждый раз при запуске Windows служба будет запускаться? также как я могу сделать это без взаимодействия с пользователем? скрипт или какой-то код?

Должен ли исполняемый файл быть проектом службы Windows, чтобы иметь возможность работать с nssm, или это может быть обычный исполняемый файл?, потому что, когда я использую nssm start [servicename], он показывает ошибку, например, служба Windows может' не запускать из командной строки и т. д.

Дополнительный ответ (Кевин Тонг).

Шаг 1. Загрузите и распакуйте файл nssm-2.24.zip

Шаг 2. Из типа командной строки:

C:\> nssm.exe установить [название службы]

откроется графический интерфейс, как показано ниже (пример: сервер UT2003), а затем просто перейдите к: yourapplication.exe

Исправьте синтаксис nssm.exe install [serviceName] . Это решение работает, но если у вас есть приложение с графическим интерфейсом, оно не будет работать на Win Serever2003. Если позже вы захотите удалить его, используйте nssm.exe remove [youservicename]

Я предполагаю, что ссылка на nginx связана с тем, что это конкретная программа, которую вы хотите запускать как службу? Пока я не увидел комментарий hmd выше, я думал, что вы пытаетесь помочь, подразумевая, что nginx является необходимой зависимостью для установки или что-то в этом роде. но тогда в графическом интерфейсе кажется, что вы устанавливаете не nginx, а сервер Unreal Tournament? Просто указываю, что пример непоследовательный и потенциально вводящий в заблуждение. Простое «Предположим, вы хотите установить nginx как службу, тогда это будет выглядеть так:» поможет.

@flutefreak7 yes nginx не нужен и вводит в заблуждение. Команда будет работать и без него. Это необязательный параметр, если вы хотите указать имя службы из командной строки.

Многие существующие ответы включают вмешательство человека во время установки. Это может быть процесс, подверженный ошибкам. Если у вас есть много исполняемых файлов, которые вы хотите установить в качестве служб, последнее, что вам нужно сделать, — это выполнить их вручную во время установки.

Для описанного выше сценария я создал serman, инструмент командной строки для установки исполняемого файла в качестве службы. Все, что вам нужно написать (и написать только один раз), — это простой файл конфигурации службы вместе с вашим исполняемым файлом. Выполнить

установит службу. stdout и stderr регистрируются. Для получения дополнительной информации посетите веб-сайт проекта.

Как показано ниже, рабочий файл конфигурации очень прост. Но он также имеет много полезных функций, таких как и

Эти дополнения оказались полезными..необходимо выполнять от имени администратора

Если в названии службы есть пробелы, заключите их в кавычки.

То же, что и ответ Сергея Пожарова, но с командлетом PowerShell:

Дополнительные сведения о настройке см. в разделе New-Service.

Это будет работать только для исполняемых файлов, в которых уже реализован API служб Windows.

Я протестировал для этого хороший продукт: AlwaysUp. Не бесплатно, но у них есть 30-дневный пробный период, так что вы можете попробовать.

Несколько лет назад я создал кроссплатформенное программное обеспечение Service Manager, чтобы иметь возможность запускать PHP и другие языки сценариев в качестве системных служб в ОС Windows, Mac и Linux:

Service Manager – это набор предварительно скомпилированных двоичных файлов, которые устанавливают и управляют системной службой в целевой ОС с использованием почти идентичных параметров командной строки (также доступен исходный код). Каждая платформа имеет небольшие различия, но основные функции в основном стандартизированы.

Если дочерний процесс умирает, Service Manager автоматически перезапускает его.

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

Читайте также: