2014-05-01 134 views
1

我想獲得一個Perl腳本作爲Windows服務安裝。用於實驗的目的Perl代碼非常簡單(見下文)安裝Perl腳本作爲Windows服務

my $num = 1; 

while($num == 1) 
{ 
    open(FH, ">>", "C:\\Perl\\MyCode\\Service\\svclog.txt"); 
    print FH "hello world\n"; 
    close(FH); 
    sleep 3; 
} 

我一直在嘗試使用本機的Windows命令SC安裝腳本...

SC CREATE MyPerlService binpath= "C:\Perl\bin\perl.exe C:\Perl\MyCode\Service\perlsvc.pl" error= normal start= auto DisplayName= "My Perl Service" type= own 

服務安裝罰款。但是我嘗試啓動它並收到一條消息,告訴我服務在分配的時間內未能啓動。

毫無疑問,我對Windows服務知之甚少。 我懷疑Windows正在等待啓動()類型的函數來執行,但我只是在這裏猜測。話雖如此,我會期望Windows安裝服務時檢查/照顧它?不知道:)

我真的不能使用任何第三方產品,因爲這是內部工作,並且有一整個軟件訂購流程需要數月和數月時間。理想情況下,我需要一些我可以使用/編寫的本機Windows XP/2003或Perl 5.8.8(舊版本 - 是的)

如果任何人都可以指向我的Perl(或DOS )腳本已被安裝爲Windows服務和安裝它的代碼 - 我將非常感激。

的信息 - 我已經沖刷網頁,很多人都在談論使用INSTSRVSRVANYPDK - 所有這一切,我此刻沒有進入。

謝謝

特雷弗

+2

谷歌搜索出現了一些可能的解決方案,例如[this](http://www.perlmonks.org/bare/?node_id=435700),它使用了'Win32:Daemon'軟件包。 –

+0

謝謝大衛,我也遇到過,我的Perl安裝沒有安裝Win32 :: Daemon - 除非我錯過了某些東西(完全可能) 我可能更密切地關注該模塊,因爲安裝Perl模塊比購買/安裝第三方應用程序。 – thonnor

+0

@thonnor如果它沒有安裝...安裝它:-) –

回答

1

對於它的價值,SRVANY是相當有限。例如,它不能停止服務。我建議你看看nssm。我有一個cpan模塊,使它更易於使用,名爲Win32::ServiceManager