1

Windows2000マシンでWindowsサービスを実行しています。このサービスの実行可能ファイルが停止することがありますが、Windowsサービスはサービスマネージャーに「開始済み」として表示されます。この状況では、このサービスに対して定義された再起動動作は有効になりません。

どうすればこの状況を回避できますか?これはWindows2000の構成の問題ですか、それともWindowsサービスが正しく構成されていませんか?

編集:Windowsサービスは、次の説明に基づいて、py2exeを使用してPythonで自己作成されます:pythonwin32サービスの作成

4

1 に答える 1

0

Windows Service Recovery メカニズムは、サービスが失敗したと判断した場合にのみ開始されます。サービスが正常に終了したと判断した場合はトリガーされません。

Microsoft のドキュメント ( http://msdn.microsoft.com/en-us/library/ms685939%28v=VS.85%29.aspx ) から:

SERVICE_STOPPED のステータスをサービス コントローラに報告せずにサービスが終了すると、サービスは失敗したと見なされます。

私の推測では、あなたの Python プログラムは次のいずれかです。

  1. クラッシュをキャッチし、クリーンアップして通常どおり終了する、または
  2. ハング。この場合、タスク マネージャーに exe が表示されないことを確認できますか? (必ずすべてのユーザーのプロセスを表示してください...)
于 2011-09-10T15:29:21.547 に答える