2011-03-29 3 views
1

Je cours un service Windows sur une machine Windows 2000. Parfois l'exécutable pour ce service meurt, mais le service Windows est toujours listé comme "démarré" dans le gestionnaire de service. Dans ce cas, le comportement de redémarrage défini pour ce service ne prend pas effet.Le service Windows a démarré, mais le processus a été arrêté

Comment puis-je éviter cette situation? Est-ce un problème de configuration de Windows 2000 ou le service Windows est-il mal configuré?

EDIT: Le service Windows est auto-écrit en Python en utilisant py2exe, à partir de cette description: Creating a python win32 service

+0

De quel service parlons-nous? –

+0

Un service auto-rédigé. Le programme a été écrit en Python. – Bertolt

+0

Je pense que nous pouvons réduire cela en toute sécurité à un codage défectueux. Vous devez déboguer votre service et déterminer pourquoi il ne fonctionne pas comme prévu. Gardez à l'esprit que le code ne fonctionnait pas pour la personne qui a posté la question que vous avez liée à l'un ou l'autre. –

Répondre

0

Le mécanisme de récupération de Windows ne fera botter quand il pense que le service a échoué. Il ne sera pas déclenché quand il pense que le service s'est terminé normalement.

De la documentation de Microsoft (http://msdn.microsoft.com/en-us/library/ms685939%28v=VS.85%29.aspx):

Un service est considéré comme ayant échoué quand il se termine sans signaler un statut de SERVICE_STOPPED au contrôleur de service.

Je pense que votre programme Python est:

  1. Attraper l'accident, le nettoyage et la sortie normalement, ou
  2. Hung. Pouvez-vous confirmer que vous ne voyez pas l'exe dans le Gestionnaire des tâches lorsque cela se produit? (Assurez-vous de montrer les processus de tous les utilisateurs ...)
Questions connexes