Для работы со службами в Windows, существует утилита командной строки sc, также для управления можно использовать утилиту net. В данной стать я не буду пытаться описать все их параметры. Цель статьи - показать как со службами производить основные действия: установка, удаление, запуск, остановка.
где:
[computername] - имя компьютера на котором устанавливается служба (для локального этот параметр можно опустить)
[newservice] - имя вашей службы
[путь к exe-файлу приложения] - полный путь к вашей программе.
<параметры> - дополнительные параметры. Необязательны. Т.к. в мой пост не ставит целью дать доскональное описание этой утилиты, о параметрах вы можете почитать например здесь.
Обратите внимание на пробел после binpath, он обязательный!
Кстати, если в пути есть пробелы, то его следует заключить в кавычки " ". Если есть русские буквы, то, возможно потребуется решить проблемы с кодировкой (аналогично описаному здесь). В Windows 7, команду надо выполнять от имени администратора. И самое главное: не каждая программа может быть службой! Она должна быть написана соответствующим образом для этого!
Создание (установка, инсталляция) службы:
sc [computername] create [newservice] binpath= [путь к exe-файлу приложения] <параметры>
где:
[computername] - имя компьютера на котором устанавливается служба (для локального этот параметр можно опустить)
[newservice] - имя вашей службы
[путь к exe-файлу приложения] - полный путь к вашей программе.
<параметры> - дополнительные параметры. Необязательны. Т.к. в мой пост не ставит целью дать доскональное описание этой утилиты, о параметрах вы можете почитать например здесь.
Обратите внимание на пробел после binpath, он обязательный!
Кстати, если в пути есть пробелы, то его следует заключить в кавычки " ". Если есть русские буквы, то, возможно потребуется решить проблемы с кодировкой (аналогично описаному здесь). В Windows 7, команду надо выполнять от имени администратора. И самое главное: не каждая программа может быть службой! Она должна быть написана соответствующим образом для этого!
Удаление службы:
sc [computername] delete [servicename]
Параметры аналогичны установке.
Запуск службы:
с помощью утилиты net:
net start [servicename]
где [servicename] - имя службы
с помощью утилиты sc:
sc start [servicename]
где [servicename] - имя службы
Остановка службы:
с помощью утилиты net:
net stop [servicename]
где [servicename] - имя службы
с помощью утилиты sc:
sc stop [servicename]
где [servicename] - имя службы
Разница в том, что эти 2 утилиты работают с разными именами: sc - с системным именем, а net с отображаемым (параметр displayname при создании с помощью cs)
sc stop NewServ
Разница в том, что эти 2 утилиты работают с разными именами: sc - с системным именем, а net с отображаемым (параметр displayname при создании с помощью cs)
Пример:
chcp 1251
sc create NewServ binpath= "d:\Мой сервис\Service.exe" displayname= MyServ
sc create NewServ binpath= "d:\Мой сервис\Service.exe" displayname= MyServ
Данный bat-файл создаст службу NewServ с отображаемым именем "MyServ". Первая строчка указывает консоли кодировку, т.к. bat был написан в блокноте, который сохраняет файлы в ANSI (windows 1251), а по умолчанию консоль работает (оем 866)
sc start NewServ
Данная команда запустит службу, обратите внимание что мы обращаемся к ней по системному имени.
net start MyServ
Как уже говорилось выше, службу можно запустить и так, но использовать надо не системное, а отображаемое имя!
Аналогично остановка службы:
sc stop NewServ
или
net stop MyServ
Удаление:
Комментариев нет:
Отправить комментарий