2017-09-29 3 views
0

Je crée un contrôleur Web pour un service python, afin qu'un utilisateur puisse démarrer et arrêter le service. J'ai besoin de savoir si le service fonctionne.Test par lots si python.exe exécute un fichier spécifique

Je veux vérifier si python exécute mon script à partir de cmd. echo 1 si elle est en cours d'exécution de mon script autrement echo 0

tels que:

if (python is running bot.py) (
    echo 1 
) 
+0

Pas clair ce que vous demandez, s'il vous plaît modifier et ajouter plus de détails – TomEus

+0

ajoutée sorte d'un exemple – BaleineBleue

+0

Vous pouvez créer une réelle Service Windows utilisant PyWin32. Un service peut être démarré, arrêté et interrogé à l'aide de l'API de service ou à partir de la ligne de commande via sc.exe. – eryksun

Répondre

0

Vous seriez probablement mieux loti d'avoir un fichier qui est créé par les robots en cours d'exécution, qui contient leur PID, puis vérifier la présence de ce fichier. Cela vous permettrait d'obtenir le PID, mais cela dépend des processus qui se terminent proprement.

Cela fonctionne de manière similaire aux fichiers verrouillés, qui peuvent être utilisés pour arrêter 2 instances d'un programme s'exécutant sur les mêmes données en même temps.

1

Il est un peu difficile dans cmd plaine, mais cela semble fonctionner:

@echo off 
tasklist.exe /V /FI "IMAGENAME eq cmd.exe" /FO LIST | find "bot.py" >nul 
if ERRORLEVEL 1 (
    echo 0 
) else (
    echo 1 
)