2014-03-31 32 views
2

有沒有人有過如何在PERL腳本中創建Windows 7 64位Windows服務的例子?如何在Windows 7上使用PERL腳本創建Windows服務64位

在Windows XP專業版32位上,我使用具有回調函數的Win32 :: Daemon成功創建了Windows服務。這在64位上不起作用。

我已經看到了這個http://nssm.cc/usage,並使用它創建了一個服務,但它不保留狀態,並給出了錯誤。如果有人有一個適當的例子也許...

一些想法非常讚賞。

回答

3

我現在設法解決了這個問題。

我現在已將我的perl腳本作爲Windows服務在Windows 7 64位上運行。

基本上win32 ::守護進程在win 7上工作64位,但服務創建需要手動完成。即回調函數和啓動很好。

這是一個從頭開始創建perl windows服務的例子。

  1. 創建目錄C:/爲MyService

  2. 複製從該鏈接的代碼示例,並且將其保存到上述目錄。稱它爲myservice.pl(http://www.roth.net/forums/topic.php?id=106

  3. 在腳本中的print hello語句之後添加這兩行。

    $Context->{last_state} = SERVICE_RUNNING;

    Win32::Daemon::State(SERVICE_RUNNING);

    這是必要的,以保持業務正常運行。否則停止。

  4. 以管理員模式打開Dos cmd終端。使用以下命令

% sc create myservice binpath= "c:\strawberry\perl\bin\perl.exe"

它會顯示以下成功消息創建服務。 [SC] CreateService SUCCESS

  1. 現在我們需要編輯註冊表。打開註冊表編輯器(開始 - >然後鍵入regedit)

  2. 查找下HKEY_LOCAL_MACHINE->系統 - > CurrentControlSet->服務 - >爲MyService服務

  3. 點擊 '則將MyService' 和編輯的ImagePath變量是: Ç :\ strawberry \ perl \ bin \ perl.exe -I「C:\ myservice」「C:\ myservice \ myservice.pl」 - 運行

  4. 現在打開服務窗口並啓動服務。 (開始 - >控制面板 - >管理工具 - >服務)

  5. 在腳本的當前目錄中,每兩秒鐘創建並更新一次日誌。如果使用cygwin的窗口,你可以尾巴。

    % tail -f *.log

工藝將打印你好!定期...

謝謝。

相關問題