Я использую Windows XP и хочу запустить определенный файл bat как службу Windows. Есть ли способ сделать это?
Пожалуйста, помогите, спасибо
Вы можете использовать sc
команда. Например, из командной строки:
sc create MyService binPath= "C:\Program Files\Windows Resource Kits\Tools\Srvany.exe" DisplayName= "My Windows Service"
Удалять:
sc delete Service
Теперь созданная служба использует Srvany.exe, который является частью Пакет ресурсов Windows. Это позволяет вам определить службу с вашим программным обеспечением, которая в противном случае не поддерживала бы ее.
После этого вам нужно будет использовать RegEdit, чтобы создать ключ «Параметры» для вашей службы в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\
. В этом ключе вы захотите создать строковое значение с именем «Application» и ввести полный путь к вашему пакетному файлу, который вы хотите запустить как службу.
Microsoft имеет инструкции для этого также используется другой метод первоначального создания службы.
Запуск пакетного файла в качестве службы - довольно странное приложение, и есть разумная вероятность, что у вас возникнут проблемы.
Предполагая, что у вас есть пакетный файл, который работает в непрерывном цикле, я полагаю, вы можете запустить пакетный файл как службу. Как говорит Уорнер, вы захотите использовать оболочку "диспетчера служб" (например, SRVANY, о которых упоминает Уорнер, или бесплатную Менеджер службы без присасывания (NSSM)) программа.
Описание Warner о создании службы с SC со ссылкой на SRVANY является правильным. Для некоторой технической подготовки: A настоящий Сервисная программа отвечает на функции управления от диспетчера управления услугами (SCM). Эти функции управления позволяют диспетчеру управления службами (и, следовательно, оснастке консоли управления службами и т. Д.) Останавливать, запускать, приостанавливать и т. Д. Служебную программу. Основной поток:
SCM - (вызывает) -> оболочку (SRVANY, NSSM) - (вызывает) -> ваша программа
Если ваш командный файл порождает дополнительные процессы, когда вы останавливаете службу (что на самом деле останавливает программу-оболочку), вы обнаружите, что программы, порожденные вашим командным файлом, не будут убиты и будут зависать бесконечно.
SRVANY также не контролирует ваш командный файл (запущенный в CMD.EXE), и если ваша программа «умирает», «служба» останется в списке как «запущенная». (NSSM может отслеживать дочерний CMD.EXE и перезапускать его, но NSSM по-прежнему страдает от проблемы, не уничтожающей дочерние процессы командного файла при остановке службы).
NSSM имеет графический интерфейс, который помогает создать службу и связать ее с вашей программой. Это может вам понравиться, если вы не являетесь человеком, работающим с командной строкой и реестром.
В целом, запуск не обслуживающих программ в оболочках не рекомендуется. Я делаю это в некоторых производственных средах, но я всегда с осторожностью отношусь к этому и стараюсь много тестировать такие приложения, прежде чем считаю их «работающими».