Назад | Перейти на главную страницу

Как создать службу, запускающую файл .bat на Windows 2008 Server?

Я создал сервис, используя

sc create myService binpath=myservice.bat

Но когда я запускаю его, он выдает следующее сообщение об ошибке:

[SC] StartService FAILED 1053:
    The service did not respond to the start or control request in a timely fashion.

В Win2k3 я использовал srvany.exe из набора ресурсов, но для win2k8 набора ресурсов нет. На данный момент я установил srvany.exe на свой компьютер, но я не думаю, что это лучший способ сделать это.

Спасибо!

Используйте NSSM для запуска .BAT или любого старого .EXE-файла в качестве службы. Это почти замена SRVANY и простое приложение без излишеств.

http://iain.cx/src/nssm/

У меня была та же проблема, что и у вас, и NSSM была единственной утилитой, которая работала.

Конечно, вы не можете запустить такую ​​службу. Вы пробовали использовать srvany на сервере 2008? Насколько я знаю, "официальной" версии srvany для s2k8 не существует, но всегда можно попробовать, не так ли?

РЕДАКТИРОВАТЬ: О, я забыл! Мы также используем FireDaemon для запуска несервисных приложений как сервисов. Тем не менее, это не бесплатно, и его функциональность слишком велика для ваших нужд.

Мы используем Диспетчер задач запускать задачу при каждом запуске компьютера (независимо от того, вошел ли пользователь в систему или нет)

Вы не можете просто запустить файл .BAT или любой старый файл .EXE в качестве службы. Службы Windows не работают, что вы. Вы можете использовать такую ​​утилиту, как не-сосущий сервис-менеджер (NSSM) или несвободную служебную программу Microsoft SRVANY для запуска произвольной программы в качестве службы, но вы можете обнаружить, что не получаете очень «изящного» поведения остановки.

Команда SC просто добавляет необходимые записи в реестр для службы - если указанный файл не является допустимым исполняемым файлом службы, он не превратится в него.

из: это сообщение на технических форумах: http://social.technet.microsoft.com/Forums/en-US/winserverMigration/thread/98a97aee-c62b-4683-94ab-3777899cf7de/

Вот что делать ...

На момент публикации этой публикации не существовало средств Windows Server 2008 Resource Kit Tools, поэтому получите "srvany.exe" из "Windows Server 2003 Resource Kit Tools" и скопируйте его в подходящее место на вашем сервере Win2008 (например, C: \ Windows \ System32 \). Используйте «sc» для создания новой службы, запускающей «srvany» (например, sc create MyService binPath = C: \ Windows \ System32 \ srvany.exe DisplayName = «My Custom Service»). С помощью RegEdit: создайте ключ «Параметры» для вашего service (например, HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ MyService \ Paramaters \) Использование RegEdit: во вновь созданном ключе «Параметры» создайте строковое значение с именем «Приложение» и введите полный путь к приложению, которое вы хотите запустить как услуга. (Цитаты не требуются.)

И это должно сработать.

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

попробуйте это ... это сработало для меня ..

sc create ServiceTest binpath= "C:\Windows\System32\cmd.exe /C C:\ServiceTest\Jenkins-Slave.bat"

Я наткнулся на эту штуку. Вот инструмент под названием Bat_To_Exe_Converter. Конвертировать любые файлы .bat в файлы .exe очень легко. Попытайся. Сначала загрузите загрузчик, и тогда он автоматически загрузит Bat_To_Exe_Converter. Это действительно помогло мне создать службу, которая запускает мой .bat-файл через .exe. http://download.cnet.com/Bat-To-Exe-Converter/3001-2069_4-10555897.html?spi=eae5ab48292cc101b5f0ec370cf99ad0

Я использовал Windows schtasks.

вы можете сослаться на это. https://technet.microsoft.com/en-us/library/cc725744.aspx#BKMK_hours

Я нашел два других варианта, которые не заставят вас потянуться за своим кошельком.

Вы можете иметь sc запускать srvany который затем указывает на вашу программу. (есть сообщение на форуме, на которое я не могу ссылаться, потому что у меня здесь недостаточно репутации, хотя я делаю это на StackOverflow - ворчание)

Вот шаги, которые использовал исходный плакат:

  1. Использовать sc создать новую службу, которая запускает srvany (например. sc create MyService binPath=C:\Windows\System32\srvany.exe DisplayName="My Custom Service")
  2. Используя RegEdit: создайте Parameters ключ для вашей службы (например, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\)
  3. Использование RegEdit: во вновь созданном Parameters ключ, создайте строковое значение с именем Application и введите полный путь к приложению, которое вы хотите запустить как службу. (Цитаты не требуются.)

Если это похоже на взлом, то вы можете создать службу .NET для запуска вашего процесса. Если вы хотите пропустить несколько шагов, вот служба .NET с открытым исходным кодом, которая может запускать общие процессы:

http://www.codeproject.com/KB/system/xyntservice.aspx

Настройте его под свои нужды, но он сделает большую часть того, что вы хотите, из коробки.