10

以下のpython win32サービスを書いていますが、それが機能するサービスをコンパイルするときのコードのスニペットですが、services.mscに移動して手動で開始する必要があります。

サービスをインストールするときにオプションはありますか: myservice.exe install 自動的に開始されますか?

以下は私のコードのスニペットです:

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)
4

4 に答える 4

15

myservice.exe --startup=auto installサービスをインストールし、自動的に開始するように設定するために使用します。

于 2014-10-01T21:27:13.020 に答える
2

このActiveState レシピを見てみましょう。これは、サービスを自動開始する方法を示す win32serviceutil のラッパーです。

于 2010-12-27T16:34:36.000 に答える
1

sc.exeコマンドで使用できますcreate

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

詳細については、Microsoft KB251192を参照してください。

win32serviceutilには、InstallService()使用できる機能もあります。

于 2010-12-27T13:22:32.280 に答える
-1

@Maciejg は私には機能しません。ここでは、 py2exe で構築された私のサービスを自動的に開始するソリューションを示します

myservice.exe -auto -install
于 2016-03-03T11:00:44.893 に答える