2010-05-25 8 views
3

J'utilise Python, pour ce que ça vaut, mais j'accepte les réponses dans toutes les langues applicables.Comment renommer un processus sous Linux?

J'ai essayé d'écrire à /proc/$pid/cmdline, mais c'est un fichier en lecture seule.

J'ai essayé d'affecter une nouvelle chaîne à sys.argv[0], mais cela n'a aucun impact perceptible.

Existe-t-il d'autres possibilités? Mon programme exécute des processus via os.system (équivalent à system(3)), donc une solution * NIX générale utilisant un processus de génération supplémentaire fonctionnerait correctement.

+3

Juste curieux, pourquoi voudriez-vous * le faire? :) –

+1

duplication possible de [Y at-il un moyen de changer le nom du processus effectif en Python?] (Http://stackoverflow.com/questions/564695/is-there-a-way-to-change-effective-process-name -in-python) –

+1

Répondre à Justin: Il est de pratique courante dans les serveurs Unix tels qu'apache et postgres de réécrire un nom de processus générique avec une brève description de ce que fait le processus. Cela aide les administrateurs système (et les utilisateurs de bureau) à voir ce qui se passe lorsqu'ils regardent la liste des processus système. –

Répondre

3

This semble être ce que vous cherchez ...

+1

Sur une note connexe ... Je n'ai jamais vraiment essayé de le faire en Python moi-même, mais il semble fugly :-( – ivans

0

Ecrire à *argv va le changer, mais vous aurez besoin de faire cela à partir de C ou similaire; Je ne pense pas que Python va vous donner directement accès à cette mémoire.

Je recommande également de le laisser seul.

0

Si vous utilisez subprocess.Popen au lieu de os.system vous pouvez utiliser l'argument executable pour spécifier le chemin d'accès au fichier réel pour exécuter, et laissez-passer le nom que vous voulez afficher en tant que premier élément de la liste qui est le paramètre args.

Questions connexes