2010-12-27 46 views
6

Tôi đang viết một dịch vụ win32 python bên dưới là đoạn mã của tôi khi tôi biên dịch dịch vụ nó hoạt động nhưng tôi cần phải đi đến services.msc và khởi động thủ công.Dịch vụ Python win32 bắt đầu automaticlly

Có tùy chọn nào khi tôi cài đặt serivce bằng cách: myservice.exe cài đặt nó sẽ bắt đầu tự động không?

dưới đây được đoạn mã của tôi:

import win32serviceutil 
import win32service 
import win32event 

class SmallestPythonService(win32serviceutil.ServiceFramework): 
    _svc_name_ = "ser_name" 
    _svc_display_name_ = "ser_descryption" 
    #_svc_description_='ddd' 
    def __init__(self, args): 

     win32serviceutil.ServiceFramework.__init__(self, args) 
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) 

    def SvcStop(self): 

     self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) 
     win32event.SetEvent(self.hWaitStop) 

    def SvcDoRun(self): 

     win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE) 

if __name__=='__main__': 

    win32serviceutil.HandleCommandLine(SmallestPythonService) 

Trả lời

1

Bạn có thể sử dụng sc.exe với lệnh create.

sc create MyPyService binPath= "C:\myservice.exe" DisplayName= "Some Python Service" 

Thông tin thêm về điều này tại Microsoft KB251192.

win32serviceutil cũng có chức năng InstallService() bạn có thể sử dụng.

2

Tôi sẽ xem xét điều này ActiveState recipe. Đó là một trình bao bọc xung quanh win32serviceutil cho thấy cách tự động khởi động dịch vụ.

6

Sử dụng myservice.exe --startup=auto install để cài đặt dịch vụ và cài đặt dịch vụ tự động khởi động.

+0

giải pháp Nativ là giải pháp tốt nhất! – enthus1ast

0

@Maciejg không làm việc cho tôi, đây là giải pháp để bắt đầu automaticaly dịch vụ của tôi builded với py2exe:

myservice.exe -auto -install 
Các vấn đề liên quan