У меня есть сценарий 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.