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

Python スクリプトは Windows サービスとして実行できますか?

Mary-Kate Olsen
リリース: 2024-12-04 09:44:14
オリジナル
201 人が閲覧しました

Can Python Scripts Be Run as Windows Services?

Windows サービスとして Python スクリプトを実行する

Python でサービスベースのシステムを開発する場合、それが可能かどうかという疑問が生じます。 Python スクリプトを Windows サービスとして実行します。この記事では、このクエリに取り組み、包括的な回答を提供します。

実際、ActivePython に含まれる pythoncom ライブラリまたは pywin32 拡張機能を利用して、Python プログラムを Windows サービスとしてホストすることは可能です。このプロセスを説明するために、基本的なサービスの次のコード スケルトンを考えてみましょう。

import win32serviceutil
import win32service
import win32event
import servicemanager
import socket

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)
        socket.setdefaulttimeout(60)

    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)
ログイン後にコピー

カスタム コードを main() 関数に挿入します。通常は、設定されたフラグを監視することで中断できる無限ループをデプロイします。 SvcStop メソッド。

さらに、Windows はサービス マネージャーを通じてサービスの存在を通知されます。サービス コンソール (services.msc) や sc コマンド ライン ツールなどのネイティブ Windows ユーティリティを使用して監視および管理できます。 Unix の開始/停止スクリプト用の /etc/init.d ディレクトリと同様に、Windows はサービスの管理に scm (サービス コントロール マネージャー) を使用します。 sc ユーティリティを利用すると、サービスの作成、開始、停止、構成など、サービスに対してさまざまなアクションを実行できます。

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

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