J'ai une application serveur que je veux exécuter chaque fois que l'ordinateur est en cours d'exécution et généralement c'est le cas, sauf que parfois je la trouverai fermée d'elle-même.
Y a-t-il une batte ou un script que je peux exécuter pour surveiller l'application et la redémarrer si elle se ferme?
Réponses:
Cela ne fonctionne pas toujours (cela dépend en quelque sorte de la façon dont le programme se charge), mais normalement vous pouvez créer un fichier batch comme celui-ci:
J'ai utilisé le Bloc-notes comme exemple.
Les lignes
sont juste un délai (de 10 secondes) pour donner à l'utilisateur la possibilité d'interrompre le processus avant qu'il ne redémarre.
La ligne
n'est pas nécessaire, mais se connecterait chaque fois que le programme était fermé dans un fichier, il pourrait donc être utile de diagnostiquer le problème. Le niveau d'erreur peut ne pas vous en dire beaucoup, mais un programme est censé renvoyer 0 s'il s'est fermé normalement, et un non -message zéro si ce n'est pas le cas
Remarque, vous mentionnez que votre programme ne fait rien s'il est déjà en cours d'exécution. Cela signifie généralement que l'application démarre, détecte qu'une autre copie est déjà en cours d'exécution et s'arrête immédiatement. Si tel est le cas, et que votre programme est en cours d'exécution avant de démarrer ce fichier de commandes, le lot effectuera une boucle et tentera de démarrer votre programme toutes les dix secondes.
la source
Sur la base de vos réponses ci-dessus, ce que je suggère, c'est de mettre cette commande dans un fichier de commandes, puis de définir ce fichier de commandes pour qu'il s'exécute en tant que tâche planifiée toutes les minutes. Il n'y a pratiquement pas de frais généraux associés à cela, et cela garantit que votre processus est déclaré, que vous soyez là ou non pour réaliser qu'il s'est arrêté.
la source
Je suppose que la bonne réponse à cette question dépend de la raison pour laquelle vous voulez le faire. Essayez-vous de résoudre un arrêt accidentel? Empêcher un arrêt non intentionnel "malveillant" par les utilisateurs de la machine (par exemple, les employés qui ferment le logiciel de surveillance)? Empêcher les attaques malveillantes sérieuses et qualifiées? Essayez-vous d'écrire vous-même des logiciels malveillants (auquel cas veuillez vous débarrasser de;))?
En outre, comme d'autres commentateurs l'ont mentionné, cela différerait si vous aviez écrit un service Windows (par exemple)
Personnellement, je commencerais probablement par écrire une deuxième application et la démarrer de la même manière. Demandez aux deux applications de numérisation pour l'autre périodiquement et redémarrer si nécessaire - assurez-vous fournir un moyen facile pour l'application à légitimement fermée si!
Cela dit, et compte tenu de votre commentaire "parfois, je trouverai qu'il a fermé par lui-même", je commencerais vraiment par essayer de savoir pourquoi il est fermé ...
la source
Vous pouvez utiliser un programme appelé ReStartMe 2.0 [ Mirror ] fait exactement cela:
Surveille les processus et les redémarre s'ils se ferment.
la source
c'est bien mieux! ceci est un code que j'utilise pour un serveur de jeu minetest devrait être enregistré sur un fichier .bat
la source