次の方法で共有

PythonプログラムをWindowsサービスとして設定しようとするとエラー 1053: そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。となる

Anonymous
2023-07-27T07:44:22+00:00

以下のようなコードを作成して、コマンドプロンプト(管理者権限)から

$ python test_service.py install

$ python test_service.py start

と実行したところ

エラー 1053: そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。

というエラーが発生しました。

https://www.partitionwizard.jp/clone-disk/windows-could-not-start-the-service-on-local-computer-error-1053.html

にあるような内容は確認しましたが、エラーはなくなりませんでした。

OSはWindows 10 IoT Enterprise LTSC 21H2

Pytyhonのバーションは3.8.10です。

pywin32のバージョンは306です。

このエラーに対処するにはどうしたら良いでしょうか?

class TestService(win32serviceutil.ServiceFramework):

svc_name = "Test Service"svc_display_name = "Test Service"svc_description = "サービステスト"_timeout_Milliseconds = 1 * 1000def init(self, args):win32serviceutil.ServiceFramework.init(self, args)self.stop_event = win32event.CreateEvent(None, 0, 0, None)def SvcStop(self):self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)win32event.SetEvent(self.stop_event)def SvcDoRun(self):servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,servicemanager.PYS_SERVICE_STARTED,(self.svc_name, ''))if name == 'main': win32serviceutil.HandleCommandLine(TestService)

**モデレーター注**

この質問はコミュニティ センター / ボランティアモデレータープログラムについて話し合う に投稿されましたが
内容から判断してこちらのカテゴリに移動いたしました。

適切なカテゴリに投稿すると、返信や回答が得られやすくなり、同じ質問を持つ他のユーザーの参考にもなります。
家庭向け Windows | その他 | アプリ

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

5 件の回答

並べ替え方法: 最も役に立つ
  1. hidaka 56,101 評価のポイント MVP ボランティア モデレーター
    2023-08-02T07:45:19+00:00

    7月30日にも書きましたが、Python が正常にインストールされていないか、インストール先とアクセス権限が all users になっていない可能性があるので、確認してください。例えばwhereで以下の様に、全ユーザーPATHの通る場所にインストールして、システムのPATHが正しく設定されていることを確認してはいかがでしょう。

    画像

    あとは質問文のプロンプトが変なのでまさかとは思いますが、WSL/WSL2 上では実行・起動していないですよね。WindowsのサービスはWindowsで起動します。何かと混乱の元になるので、WSL/WSL2は例えエディタだけでも使わない方が良いです。Git BashやMSYS程度はOKですが、Cygwin も混乱の元なので避けるべきです。

    0 件のコメント コメントはありません
  2. hidaka 56,101 評価のポイント MVP ボランティア モデレーター
    2023-08-02T07:05:58+00:00

    その後いかがでしょう。試してみましたか?

    単に文字列の問題だったので、間違いが無い様にGitHubに上げました。参考にしてください。

    https://github.com/ahidaka/PythonTestService/

    テスト結果も一応、載せておきます。

    0 件のコメント コメントはありません
  3. Anonymous
    2023-08-02T07:05:53+00:00

    返信ありがとうございます。

    コードのコピペ時にミスがあったようです。

    より正確には以下のコードになります。

    import win32serviceutil
    
    class TestService(win32serviceutil.ServiceFramework):
    
        _svc_name_ = "Test Service"
    
        _svc_display_name_ = "Test Service"
    
        _svc_description_ = "Service Test"
    
        def __init__(self, args):
    
            win32serviceutil.ServiceFramework.__init__(self, args)
    
            self.stop_event = win32event.CreateEvent(None, 0, 0, None)
    
        def SvcStop(self):
    
            self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
    
            win32event.SetEvent(self.stop_event)
    
        def SvcDoRun(self):
    
            servicemanager.LogMsg(
    
                servicemanager.EVENTLOG_INFORMATION_TYPE,
    
                servicemanager.PYS_SERVICE_STARTED,
    
                (self._svc_name_, '')
    
            )
    
    if __name__ == '__main__':
    
    win32serviceutil.HandleCommandLine(TestService)  
    

    このコードをinstall後にstartしようとすると以下のエラーとなります。

    $python test_service.py start
    
    Starting service Test Service
    
    Error starting service: そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。
    
    0 件のコメント コメントはありません
  4. hidaka 56,101 評価のポイント MVP ボランティア モデレーター
    2023-07-30T07:27:23+00:00

    このエラーに対処するにはどうしたら良いでしょうか?

    試してみましたところ、エラーが出るので以下の修正をしたところ、install/start とも正常動作することを確認しました。svc_name→_svc_name_ などが重要です。

        _svc_name_ = "Test Service"
    
        _svc_display_name_ = "Test Service"
    
        _svc_description_ = "Service Test"
    
    中略
                (self._svc_name_, '')
    

    一応の注意として、「サービス」の起動なので、python は「Customize installation」で、all users で C:\Program Files 以下にインストールしておく必要があります。

    0 件のコメント コメントはありません
  5. nanashi-san 43,670 評価のポイント ボランティア モデレーター
    2023-07-28T00:21:58+00:00

    こんにちは。

    この Stackoverflowでの同様の質問と同じでしょうか?

    Pythonを使用してウィンドウズサービスを作成する方法 - スタックオーバーフロー (stackoverflow.com)

    (ブラウザの翻訳機能をご利用ください。)

    Microsoft コミュニティよりはよりプログラム開発に特化したコミュニティを利用された方が良いかと思います。

    0 件のコメント コメントはありません