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

Запустите сценарий Perl как службу Windows 7

У меня есть сценарий perl, который скомпилирован с использованием pp, для запуска в качестве службы Windows на машинах с Windows 7. Я посмотрел на ветку http://www.perlmonks.org/index.pl?node%5Fid=230377 но бесполезен, потому что большинство из них были непонятными, а предлагаемые в них решения заключались в создании исполняемых файлов, а не для запуска в качестве службы Windows 7. Я попытался поместить свой скомпилированный exe в запланированные задачи Windows, но я думаю, что по какой-то причине он не может работать. Как мне отладить это?

Вы можете создать службу в Windows 7 с помощью sc.exe команду из командной строки от имени администратора. Вот как ты это делаешь.

Перейдите в Пуск -> Все программы -> Стандартные и затем щелкните правой кнопкой мыши «Командная строка». Во всплывающем меню выберите «Запуск от имени администратора».

В командной строке используйте следующую команду для создания службы. Обратите внимание, что после binPath= а это требуется.

sc create perlsvc binPath= c:\myprogram\myperlprg.exe

Это создаст службу с именем perlsvc, которая выполняет c: \ myprogram \ myperlprg.exe при запуске службы. Если вы сейчас запустите services.msc, вы должны увидеть свою службу в списке. На этом этапе ваша служба будет настроена на запуск вручную. Вы можете изменить его в программе служб, которую вы только что запустили, или с помощью параметра при создании службы (см. Ссылку в конце этого сообщения).

Значение perlsvc используется как ключ реестра для службы1 а также обратиться к сервису с sc и net команды. Лучше сделать его коротким и без пробелов. Если вам нужно что-то более информативное, вы можете добавить DisplayName= вариант. Опять же, обратите внимание на обязательный пробел после знака равенства.

sc create perlsvc binPath= c:\myprogram\myperlprg.exe DisplayName= "Important Perl Service"

Когда вы запустите services.msc, вы увидите «Важная служба Perl» в качестве имени службы. Это имя также будет отображаться при запуске net start чтобы увидеть список запущенных служб из интерфейса командной строки. Вы все еще можете использовать короткое имя в интерфейсе командной строки, например, с net start perlsvc.

Если вам больше не нужна ваша служба, запустите sc delete perlsvc и он будет удален.

Если вы планируете сценарий установки службы, возможно, вам будет интересно прочитать о другие варианты для sc задокументировано на веб-сайте Microsoft.


1 Услуги расположены в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services ключ реестра.

Попробуйте использовать SC.exe для преобразования EXE в службу Windows.