2011-12-29 22 views
8

Tôi đã tạo một dịch vụ windows để bắt đầu một tập lệnh .py.Khởi động python .py làm dịch vụ trong các cửa sổ

sc create "Maraschino" binPath= "C:\HTPC\Maraschino\maraschino-cherrypy.py" DisplayName= "Maraschino" depend= "Tcpip" 

Sau đó, tôi đã thêm một khóa registry để liên kết các py để mở sử dụng python.exe

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Maraschino\Parameters] 
"AppDirectory"="C:\\Python27" 
"Application"="C:\\Python27\\python.exe C:\\HTPC\\Maraschino\\maraschino-cherrypy.py" 

Tuy nhiên khi tôi cố gắng bắt đầu dịch vụ tôi nhận được Lỗi 193 0xc1 mà khi tiết lộ rằng googled nó không phải là một exe hợp lệ tôi đang cố gắng để bắt đầu. Tôi biết nó không phải là một .exe nhưng một .py và liên kết nó để mở với python.exe nên sửa lỗi này nhưng tôi đang làm cho một lỗi. Có ai có bất cứ cái nhìn sâu sắc vào những gì tôi có thể làm sai khi liên kết các kịch bản sử dụng python.exe

Cảm ơn

+0

thử gọi file pyc để thay thế. – Marcom

+0

@Marcom Cảm ơn, nhưng điều đó không hiệu quả. Một ứng dụng của nó để tất cả được biên dịch và chạy nó maraschino-cherrypy.py hoạt động khi nhấp đúp không chỉ qua các dịch vụ –

+0

Tất cả đều là các bản sao: http://stackoverflow.com/search?q=python+windows+service –

Trả lời

17

Bạn có thể làm điều này bằng cách sử dụng SRVANY.EXE, mà là một công cụ từ Microsoft dành riêng cho các loại hình công việc.

Trước tiên, tải xuống và cài đặt Windows Resource Kit. Lưu ý: Bạn chỉ cần srvany.exe, hoạt động trên tất cả các phiên bản của Windows.

Giả sử Windows Resource Kit đã được lắp đặt tại C: \ Program Files \ Windows Resource Kits \ run:

sc create "[YourService]" binPath= "C:\Program Files\Windows Resource Kits\srvany.exe" 

Bây giờ, chạy regedit.

Trong hộp thoại Registry Editor chọn HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > [YourService]

Với [YourService] được chọn, nhấn vào Edit> New> Key từ thanh công cụ.

Nhập Tham số và nhấn enter.

Từ thanh công cụ, chọn Chỉnh sửa> Mới> Giá trị chuỗi.

Nhập Ứng dụng và nhấn enter.

Nhấp chuột phải vào Ứng dụng và chọn Sửa đổi.

C:\Python27\python.exe C:\[YourServicePath].py 

Nhấn nút OK.

Và sự bùng nổ! bạn có một dịch vụ mới tốt đẹp.

+0

Ok cảm ơn, tôi đã hy vọng để có được đi mà không cần cài đặt bất cứ điều gì nhưng điều này sẽ làm việc. Cảm ơn –

+0

Bạn không thực sự phải cài đặt bất cứ điều gì! Chỉ cần có được srvany.exe (cài đặt nó một lần và lấy nó, hoặc google nó). Hãy ném nó vào thư mục tập lệnh của bạn và đặt binPath thành thư mục đó. Đây là những gì chúng tôi làm trong môi trường sản xuất. – Ohad

+0

srvany.exe - dành cho PC mới không có bộ tài nguyên Windows cách cài đặt ở đó? – YumYumYum

0

Tôi không biết làm thế nào sc hoạt động, nhưng tôi nghĩ rằng phải có một số cách để vượt qua các thông số vào nhị phân, vì vậy bạn có thể thử đăng ký "C: \ Python27 \ python.exe C: \ HTPC \ Maraschino \ maraschino-cherrypy.py" để thay thế.

Bạn cũng có thể thử py2exe :)

0

Cập nhật của @Ohad. Trước hết SRVANY.EXE sẽ được triển khai tới tất cả các máy

Bước 1:

  • Tải về và cài đặt Windows Resource Kit.
  • Được tìm thấy trong hộp của tôi: C: \ Program Files (x86) \ Windows Resource Kits \ Tools \ srvany.exe.
  • Sau đó mở command prompt và nhấn

    sc tạo ra "[YourService]" binPath = "C: \ Program Files (x86) \ Windows Resource Kits \ Tools \ SRVANY.EXE" start = auto DisplayName = "[ YourService Monitor]"

    [SC] CreateService SUCCESS

Bước 2: thực hiện một file.reg với nội dung và kích đúp vào nó sau

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[YourService]\Parameters] 
"Application"="C:\\[YourService Executable].exe" 

Bước 3: Bây giờ bắt đầu dịch vụ và nó sẽ thực hiện những gì chưa từng có bạn đã gán trong file.reg

Xong

Các vấn đề liên quan