Windows サービスとしての Python スクリプトの実行
データベースに格納されている相互関連するオブジェクトを管理する必要があるため、より高レベルのインターフェイスを提供するサービスが必要です。それらのオブジェクトに対する操作。ただし、Python プログラムを Windows サービスとして実行して、ユーザーのログインなしで自動実行を可能にする場合には懸念が生じます。
Windows サービスとして Python プログラムを実行することは可能ですか?
はい、ActivePython に含まれているか、ActivePython でインストールできる pythoncom ライブラリを使用して、Python プログラムを Windows サービスとして実行できます。 pywin32.
サンプル実装
単純なサービスの基本スケルトン:
import win32serviceutil import win32service import win32event import servicemanager class AppServerSvc (win32serviceutil.ServiceFramework): _svc_name_ = "TestService" _svc_display_name_ = "Test Service" 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): servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_name_,'')) self.main() def main(self): pass if __name__ == '__main__': win32serviceutil.HandleCommandLine(AppServerSvc)
Windows サービスの認識と管理
Windows は、次の方法でサービスを認識します。 win32serviceutil.ServiceFramework および servicemanager モジュール。
コントロール パネルのサービス アプレットなどのネイティブ Windows ユーティリティを使用するか、次のようなコマンド ラインを使用してサービスを管理できます。
/etc/init.d に類似
/etc/init.d に開始/停止スクリプトを置くことと直接同等のものはありません。ウィンドウズ。 Windows サービスは通常、Windows レジストリで構成されます。ただし、SystemD や Supervisor などのサービス コントロール マネージャーを利用して、同様の機能を実現できます。
以上がPython プログラムは Windows サービスとして実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。