ホームページ > バックエンド開発 > Python チュートリアル > Python プログラムは Windows サービスとして実行できますか?

Python プログラムは Windows サービスとして実行できますか?

Barbara Streisand
リリース: 2024-12-02 22:30:11
オリジナル
137 人が閲覧しました

Can Python Programs Be Run as Windows Services?

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 ユーティリティを使用するか、次のようなコマンド ラインを使用してサービスを管理できます。

  • net start servicename
  • net stop サービス名
  • sc queryexサービス名

/etc/init.d に類似

/etc/init.d に開始/停止スクリプトを置くことと直接同等のものはありません。ウィンドウズ。 Windows サービスは通常、Windows レジストリで構成されます。ただし、SystemD や Supervisor などのサービス コントロール マネージャーを利用して、同様の機能を実現できます。

以上がPython プログラムは Windows サービスとして実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート