Запуск программы как службы windows



Запускаем приложение как системную службу

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

В этой статье мы рассмотрим небольшую утилиту Any Service, которая в два щелчка мышки, поможет запустить любое приложение как системную службу. Any Service является оболочкой двух стандартных утилит srvinstw и instsrv из комплекта Windows 2000 Server и для ее нормальной работы вам будут необходимы права Администратора.

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

Главное окно программы позволяет произвести первичные настройки вашей будущей службы:

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

Далее можно проставить нужные галочки:

  • Взаимодействие с рабочим столом - отметьте, если приложение имеет иконку в системном лотке;
  • Автозапуск службы - отметьте, если хотите, чтобы сервис запускался автоматически;
  • Запустить сразу после создания - отметьте, если хотите, чтобы служба запустилась сразу после ее создания;

Как пример работы утилиты, попробуем запустить в виде системной службы популярный файловый менеджер Total Commander .

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

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

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

В случае, если вы захотите удалить службу, воспользуйтесь кнопкой Удаление. в главном окне программы. Перед вами откроется такое окно:

Находим нужную службу и жмем Удалить . Больше сервиса Total Commander не существует.

Известные проблемы: перед первым запуском, желательно отключить антивирусную программу иначе дальнейшая работа программы будет невозможна, т.к. при первом запуске, она ищет обе утилиты ( srvinstw и instsrv ) в папке %WINDIR%\System32\ и если не находит, копирует их из собственного ресурса.

Запуск программы как службы - Windows 7

17.03., 20:08 Запуск программы как службы

Описание:
SC представляет собой программу командной строки, используемую
для связи со службами и диспетчером управления службами.
Использование:
sc сервер [команда] [имя службы] параметр1 параметр2 .


Параметр сервер задается в формате \Имя_сервера .
Для получения справки о командах введите sc [команда]
Команды:
query-----------Запрос состояния службы или перечисление
состояний типов служб.
queryex---------Запрос расширенного состояния службы или
перечисление состояний типов служб.
start-----------Запуск службы.
pause-----------Отправка службе управляющего запроса PAUSE.
interrogate-----Отправка службе управляющего запроса INTERROGATE.
continue--------Отправка службе управляющего запроса CONTINUE.
stop------------Отправка службе запроса STOP.
config----------Изменение конфигурации службы (постоянное).
description-----Изменение описания службы.
failure---------Изменение действия, выполняемого службой при сбое.
failureflag-----Изменение флага действия, выполняемого службой при
сбое.
sidtype---------Изменение типа SID службы.
privs-----------Изменение привилегий, требуемых для службы.
qc--------------Запрос данных конфигурации для службы.
qdescription----Запрос описания службы.
qfailure--------Запрос действия, выполняемого службой при сбое.
qfailureflag----Запрос флага действия, выполняемого службой при сбое.
qsidtype--------Запрос типа SID службы.
qprivs----------Запрос привилегий, требуемых для службы.
qtriggerinfo----Запрос параметров службы.
qpreferrednode--Запрос предпочтительного узла NUMA службы.
delete----------Удаление службы (из реестра).
create----------Создание службы (добавление ее в реестр).
control---------Отправка службе управляющего сигнала.
sdshow----------Отображение дескриптора безопасности службы.
sdset-----------Установка дескриптора безопасности службы.
showsid---------Отображение строки SID службы, соответствующей
произвольному имени.
triggerinfo-----Настройка параметров триггеров службы.
preferrednode---Задание предпочтительного узла NUMA службы.
GetDisplayName--Получение параметра DisplayName для службы.
GetKeyName------Получение имени раздела для службы (ServiceKeyName).
EnumDepend------Перечисление зависимостей службы.

Следующие команды не требуют имени службы:
sc сервер команда параметры
boot------------(ok | bad) Показывает, требуется ли сохранить
последнюю загрузку в качестве последней удачной
конфигурации загрузки
Lock------------Блокировка базы данных служб
QueryLock-------Запрос состояния блокировки (LockStatus) базы данных
диспетчера управления службами (SCManager)
Пример:
sc start MyService

Показать справку для команд QUERY и QUERYEX? [Y(да)/N(нет)]:

Для выполнения этой операции нам понадобятся две утилиты: srvany.exe и instsrv.exe. входящие в состав Windows Server 2003 Resource Kit Tools.

Скачиваем и устанавливаем Windows Server 2003 Resource Kit Tools .
При установке под Windows 7 может появиться предупреждение о несовместимости #8212; игнорируем его.

Предположим, что в качестве службы нам нужно запустить некий исполняемый файл #8212; program.exe. расположенный в C:\Program Files\Program .

Из директории установки Resource Kit Tools (обычно C:\Program Files\Windows Resource Kits\Tools ) копируем srvany.exe и instsrv.exe в папку где расположен наш program.exe (C:\Program Files\Program ).
В этой же папке создаем текстовый файл program.reg со следующим содержанием:

Обратите внимание на двойной слэш в путях #8212; это не опечатка, так должно быть. ProgramService #8212; это имя службы. Вы можете выбрать любое, главное, чтобы оно не совпадало с уже существующими.

Теперь открываем командную строку. В Vista и Windows 7 командная строка должна быть обязательно запущена от имени администратора (правый клик на ярлыке командной строки, выбрать пункт #171;Запуск от имени администратора#187;). В командной строке выполняем:

В результате вы должны получить ответ: The service was successfuly added (служба успешно добавлена). Если же вы получили сообщение: You are not authorized to do this #8212; please contact your system administrator #8212; скорее всего, командная строка запущена как обычно, а не от имени администратора.

Далее двойной щелчок по ранее созданному файлу program.reg, запрос на внесение изменений в реестр подтверждаем.

На этом все. Осталось перезагрузиться и проверить работоспособность службы.

Вариант 1. Остановить службу, затем вручную удалить ключи реестра и файлы.

Вариант 2. Остановить службу, в командной строке выполнить:

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

спасибо за информацию, очень пригодилась#8230;.

спасибо большое за статью по удалению служб! очень познавательно. не ожидал так быстро увидеть ))
однажды была ситуация на чужом нетбуке под хп сп3. заглючил нод32, снес его, начал ставить последнюю версию, а она не устанавливается#8230; почистил вручную весь Ц от остатков нода, прошелся по реестру с поиском. в итоге получилось что все вроде и удалил а 2 службы так и висели мешая установке. ну там еще и винда была сильно запорота, так что проблему решил переустановкой на W7 :)

Max Bond: а удалять потом как? просто почистить папку и ветку реестра предварительно остановив службу? не могли бы вы поподробнее осветить вопрос удаления служб в своем блоге?
ЗЫ. спасибо за столь интересные и познавательные записи! давно с удовольствием читаю ваш блог :)

Салют постоянным читателям! )

Да, службу можно удалить вручную, как вы написали. Плюс, для служб установленных с помощью instsrv можно использовать такой синтаксис:
instsrv ServiceName remove (добавил в статью).
Более универсальный вариант с использованием утилиты sc описан здесь

ЗЫ. Если есть еще какие-нибудь пожелания по поводу новых статей с удовольствием приму к рассмотрению )

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

Должно быть так. widget.visible-all-devices. widget.visible-desktop. widget.visible-tablet. widget.visible-phone. widget.hidden-phone. widget.hidden-desktop. widget.hidden-table /* position: relative; */

В тех же местах надо еще отключить left: 0; В сочетании с position: fixed эта инструкция переносит виджет налево.

Не помогло. По-прежнему смещается налево [img]http://fxprosystems.com/wp-content/uploads//12/Image 777.png[/img]

Так, конечно, фиг поймешь что там происходит. Но. попробуй вот что: style.css 1236, отключи свойство position: relative; [css].widget.visible-all-devices,

Источники: http://www.winline.ru/articles/zapuskajem_prilozhenije_kak_sistemnuju_sluzhbu.php, http://www.cyberforum.ru/windows7/thread259279.html, http://www.q2w3.ru//06/14/3416/




Комментариев пока нет!

Поделитесь своим мнением



Категории:

Новое на сайте:

Как узнать полное название видеокарты

Как узнать точное название видеокарты Мало кто помнит, далее...

Как очистить диск д windows 7

Как освободить место на диске С Каждому посетителю далее...

Восстановление windows 7 на ноутбуке asus

ВОССТАНОВЛЕНИЕ РАЗДЕЛА RECOVERY НА НОУТБУКАХ ASUS Скрытый далее...

Популярное:

Еще по теме:

Как скачать windows 7 на флешку

Как загрузить Windows 7 с USB флеш далее...

Не открываются браузеры и антивирус

Что делать, если вирус блокирует браузер и далее...

Как проверить какая видеокарта на компьютере

видеоадаптер. Как узнать какая у меня видеокарта, далее...