Linux и Windows: помощь админам и пользователям
Администрируем и настраиваем Windows, Linux.
Запуск любого приложения в виде службы
Полезная информация
Недавно наша компания начала плавный переход части своих задач в облако. В частности мы активно начали использовать концепцию saas от Salesforce.com, в чем нам очень сильно помогли консультанты компания CT Consulting. Проект был признан успешным и активно продолжается.
Если говорить о приложениях очень общими словами они бывают либо непосредственно работающие с пользователем в графическим интерфейсом, либо работают в фоне в виде служб. Иногда возникает необходимость запустить определенное приложение в виде службы, однако в приложении такой возможности не предусмотрено. Как сделать это мы и рассмотрим в данной статье. В качестве примера возьмем программу uTorrent.
Дополнительно требуемое ПО
Для того чтобы приложение, которое не предусмотрено для запуска в виде службы, работало в таком режиме нам необходимо использовать специальную обертку, которая будет управлять приложением и имитировать его работу в виде службы.
Для этого есть различные методы, однако одним из моих любимых является использование instsrv.exe и srvany.exe. Данные утилиты являются частью Windows 2003 resource kit, который можно скачать с сайта MS.
Подготавливаем аккаунт для службы
Одним из преимуществ запуска приложения в качестве службы является то, что вы можете указать аккаунт пользователя под которым служба будет запускаться.
Обычно служебные аккаунты никогда не используются для непосредственного входа на машины. Их необходимо создавать с параметрами, предотвращающими запрос на смену пароля.
Создайте и залогиньтесь в систему под служебным аккаунтом.
При выполнении необходимых действий мы выполняем 2 основных шага. В первом мы созадем запись в реестре для оболочки службы. Во втором мы настраиваем необходимые параметры оболочки.
Откройте командную строку с правами администратора
C:\>»c:\Program Files (x86)\Windows Resource Kits\Tools\instsrv.exe» uTorrent » c:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe»
В данный момент вы уже создали службу, но ещё не указали что служба должна выполнять.
Откройте редактор реестра
Перейдите в HKLM\System\CurrentControlSet\Services\
Найдите службу, которую вы создали(uTorrent)
Создайте новую ветку с именем Parameters
В ветке Parameters создайте ключ Application
В данный момент у нас уже есть необходимая служба, запускающая требуемое приложение. Далее нам необходимо её настроить.
Далее нам необходимо выполнить настройку службы с помощью консоли управления службами или команды sc.exe
Откройте консоль управления службами
Найдите службу uTorrent
На вкладке General укажите режим запуска автоматический
Если это локальный аккаунт используйте синтаксис .\account если доменный, то domain\account
Для проверки что все работает перезагрузим компьютер. Залогинимся под другим пользователем и проверим следующее:
Процесс работает под служебным аккаунтом
Интересное
Не всем по карману настоящие швейцарские часы, но козырнуть все таки хочется. Поэтому я решил, что куплю копию швейцарских часов и никому не скажу . Нашел отличный магазин с огромным выбором очень качественных копий. При чем нужно учитывать — что это не подделки, это на самом деле отличные часы, которые тоже стоят очень неплохо, поэтому если бюджет ограничен – это на самом деле отличный выбор.
Еще записи по теме
Комментариев: 1
Есть приложение запускаю с параметром -console чтоб видеть онлайн лог, при попытках сделать приложение службой, приложение запускается но только если без параметра -console, и соответственно без консоли онлайн логов. А с параметром вообще не запускается, пишет что служба не ответила вовремя. Помогите.
Запуск приложения как службы Windows
Для начала скажу, что я зарабатываю через вот этого брокера , проверен он временем! А вот хороший пример заработка , человек зарабатывает через интернет МНОГО МНОГО МНОГО и показывает все на примерах, переходи и читай! Добавь страницу в закладки. А теперь читаете информацию ниже и пишите свой отзыв
Если нам необходимо запустить обыкновенное приложение в качестве службы Windows, то у нас есть как минимум два способа это сделать. Во первых есть утилиты Srvany & Instsrv из Resouce Kit, в во вторых есть очень интересное приложение под названием Non-Sucking Service Manager, которая является свободным программным обеспечением с открытым кодом может работать в операционных системах Microsoft, начиная с Windows 2000 и заканчивая Windows 8. При этом NSSM не требует установки, а взять ее можно на официальном сайте nssm.cc. Рассмотрим чуть подробнее оба способа запуска приложения в качестве службы Windows.
Способ первый – Srvany & Instsrv.
Для начала стоит убедится, что вы работаете под учетной записью администратора, в этом случае у вас не только достаточно прав для любых действий, но и созданная под этим аккаунтом служба будет продолжать работать под остальными учетными записями. Далее, копируем файлы instsrv.exe и srvany.exe в папку system32. Запyскам из командной стpоки следующую команду:
instsrv MyService c:полный_пyтьsrvany.exe (здесь MyService это указанное вами имя вновь созданной службы). Теперь, для конфигурирования службы, идем в «Панель управления», затем в раздел «Администрирование» и затем в раздел «Службы», здесь мы находим свой созданный сеpвис и щёлкаем на нём 2 pаза левой кнопкой мыши.
В появившемся окне свойств отмечаем, каким способом наша служба бyдет запyскаться: Automatic – бyдет запyскаться автоматически пpи загpyзке Windows, Manual – бyдет запyскаться только, когда вы ее запустите вpyчнyю, Disabled – не бyдет запyскаться вообще. Если нужно, чтобы запущенная служба взаимодействовала с вашим рабочим столом, то отметьте чек-бокс «Allow Service to Interact with Desktop». Теперь мы запускаем редактор реестра в ветке:
HKLM SYSTEM CurrentControlSet Service Имя_Вашей_службы
создаёте ключ с названием «Parameters» (без кавычек) и задаете для него значение «Application» (без кавычек) типа REG_SZ в котором указываете полный пyть к исполняемомy файлy, который стартует как служба. Осталось перезагрузить компьютер или запустить службу вручную.
Способ второй – Non-Sucking Service Manager.
Открываем командную строку (конечно, с правами администратора) и переходим в папку, в которую мы предварительно распаковали NSSM. Здесь мы вводим команду
nssm install наша_служба
в результате выполнения команды откроется окно инсталлятора NSSM. Для того, чтобы создать службу, нам достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Кроме того, в поле Options мы можем указать ключи, если они необходимы для запуска службы.
Теперь перейдем к настройке некоторых дополнительных параметров. На вкладке «Shutdown» перечислены методы остановки, которые используются при штатном завершении работы службы или аварийной остановке приложения. Стоит оставить все галочки, поскольку для разных приложений срабатывают разные методы.
Далее, при настройках по умолчанию в случае падения службы, NSSM пытается снова запускать ее, но на вкладке «Exit actions» можно указать, какое действие будет выполняться в случае нештатного завершения работы приложения и выставить задержку перед автоматическим перезапуском приложения. На вкладке «Environment» мы можем задать для службы новые переменные окружения, или же переопределить существующие.
На тот случай, если мы хотим не пользоваться графической оболочкой, можно сразу создать службу из командной строки командой:
nssm install notepad ?полный_путь_к_исполнаемому_файлусам_файл.exe?
Для удаления службы вводим команду:
nssm remove наша_служба
и подтверждаем ее удаление, если ввести команду:
nssm remove notepad confirm
то и подтверждение запрашиваться не будет.
Вот такие достаточно простые способы запуска приложения в качестве службы Windows, теперь, когда ваше приложение стартует автоматически как служба.
(Пока оценок нет)
Запуск приложения как службы Windows
Службы Windows — запущенные в фоне приложения, которые работают независимо от пользователя компьютера, и управляются непосредственно самой операционной системой. По умолчанию, службами являются строго определенные приложения, однако, ничто не мешает пользователю создать их самому. Выполнить данную задачу можно несколькими способами — с использованием стандартных средств Windows, либо с использованием сторонней программы NSSM.
Входящая в Windows программа SC позволяет легко создавать службы Windows, а так же проводить другие различные с ними манипуляции — удаление, отключение, включение, и т. д. Создается служба достаточно просто, для этого достаточно запустить командную строку от имени администратора, и выполнить там следующую команду:
Удаляется же служба еще проще:
Однако, у данного метода есть один большой существенный недостаток — с помощью данной утилиты создать службу можно только из программы, которая поддерживает работу службой. По этому, запустить какое попало приложение как службу данным способом не получится — но, можно воспользоваться сторонней утилитой NSSM, о которой речь пойдет ниже.
NSSM — программа, предназначенная для создания служб из исполняемых файлов Windows, в том числе и из графических утилит, что ставит её на уровень выше средств от Microsoft. С её помощью можно запускать большинство приложений, даже которые рассчитаны на взаимодействие с пользователем.
Скачать данную программу можно с её официального сайта — nssm.cc.
На случай проблем с официальным сайтом, можно скачать программу с нашего сайта.
В архиве для скачивания можно найти версию для 64-битной версии Windows (папка win64), для 32-битной (папка win32) и исходные коды приложения (папка src). Выбираем нужное приложение под разрядность своей системы, копируем его в удобное для вас место на жестком диске. Никакая установка приложения не требуется.
- Предположим, нужно создать службу для веб-сервера nginx под Windows. Для этого, запускаем командную строку с правами администратора, и переходим в директорию с распакованным исполняемым файлом nssm.exe.
- Затем выполняем команду, начинающую установку службы:
- Откроется окно с настройками создаваемой службы.
На самой первой вкладке «Application«, в строке «Path» задается путь к исполняемому файлу, «Startup Directory» — рабочая директория, а «Arguments» — параметры запуска. В самом низу расположена строка «Service Name«, где задается имя создаваемого сервиса.
На вкладке «Details» можно задать имя, под которым будет отображаться создаваемая служба в списке служб, а так же описание службы, которое будет отображаться там же. В выпадающем списке «Startup Type» можно выбрать тип запуска службы.
Вкладка «Log on» позволяет указать пользователя, под которым будет запускаться служба.Заполним все нужные поля и выбрав нужные настройки, остается только нажать кнопку «Install service«, для установки службы. - После нажатия кнопки «Install service«, служба будет создана, но при этом запустить её нужно будет вручную (либо перезагрузить компьютер, чтобы служба с параметром запуска «Auto» запустилась при его запуске).
Так же удалить службу можно с помощью команды в командной строке: