2010-06-02 7 views
0

Je me demande s'il existe un moyen de changer le nom d'un script pour qu'il ne soit pas appelé "python.exe" dans la liste des tâches. La raison pour laquelle je demande est que j'essaie de faire un fichier batch qui est un script python. Je veux que le fichier de commandes vérifie si le script est déjà en cours d'exécution. Si le script est déjà en cours d'exécution, le fichier de commandes ne fera rien. MerciNoms de scripts Python dans la liste des tâches

Répondre

0

Cette bibliothèque ne fonctionne pas sous Windows, et ne doit pas être utilisé dans le code de production. Manipulation Le tableau argv est un hack plutôt sale.

En général, je n'essaierais pas d'identifier les processus en analysant la table de processus. Ce n'est pas vraiment fiable, car les noms de processus ne sont pas forcément uniques. Au lieu de cela, je créer un serveur simple sur localhost dans le script python. Si elle est démarrée, le script peut alors essayer de se connecter au serveur et quitter si le serveur est déjà en cours d'exécution. Cette approche peut également être étendue ultérieurement pour prendre en charge tout type d'IPC.

0

Vous pouvez utiliser py2exe pour convertir le script Python en fichier .exe, ce qui signifie que vous pouvez lui donner le nom que vous voulez. Vous pouvez également utiliser Python lui-même (plutôt qu'un fichier .bat) en utilisant les approches données à Reading Command Line Arguments of Another Process (Win32 C code) pour déterminer le nom des scripts exécutés par les processus 'python.exe'.

0

Je créerais simplement un fichier de verrouillage dans le système de fichiers local et quitterais si cela existe déjà.

0

Copiez python.exe dans un nom de fichier de votre choix.

C:\Python26>copy python.exe my_proc.exe 
     1 file(s) copied. 

C:\Python26>my_proc.exe 
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

Dans la liste des tâches, elle s'affiche sous la forme my_proc.exe.

J'ai essayé de créer un lien symbolique de python.exe (mklink dans Windows 7). Malheureusement, il apparaît toujours comme python.exe dans la liste des tâches.

Questions connexes