2010-02-12 10 views
20

क्या लिनक्स पर एक पायथन लिपि चलाने वाली प्रक्रिया का नाम बदलने का कोई तरीका है?एक पायथन स्क्रिप्ट के प्रक्रिया नाम को बदलना

जब मैं ps करता हूं, तो मुझे "पायथन" प्रक्रिया नाम मिलते हैं।

उत्तर

15

http://code.google.com/p/procname/

नमूना उपयोग:

# Lets rename:  
>>> procname.setprocname('My super name')  

# Lets check. Press Ctrl+Z  
[email protected]:~/procname$ ps 

    PID TTY TIME CMD 

13016 pts/2 00:00:00 bash 

13128 pts/2 00:00:00 My super name <-- it's here 

यह केवल सिस्टम पर काम करेंगे जहां prctl सिस्टम कॉल मौजूद है और PR_SET_NAME आदेश का समर्थन करता है।

+1

नीट जैसे कुछ ढूंढें! क्या 'सी' एक्सटेंशन की अतिरिक्त जटिलता के बिना ** एक ही ऑपरेशन करने के लिए कोई तरीका है **? – jldupont

+0

http://bugs.python.org/issue5672 मुझे लगता है कि, नहीं, वहाँ नहीं है :-( – bernie

+2

उस टिकट में, वे एक और प्रक्रिया नाम बदलने वाले टूल का भी उल्लेख करते हैं (सी में भी): http: // code.google.com/p/py-setproctitle/source/browse/tools/ – bernie

8

वहाँ निम्नलिखित करने का विकल्प है, हालांकि यह केवल (prctl(2) कॉल के साथ) लिनक्स पर काम करता है

if sys.platform == 'linux2': 
    import ctypes 
    libc = ctypes.cdll.LoadLibrary('libc.so.6') 
    libc.prctl(15, 'My Simple App', 0, 0, 0) 
+0

डेबियन 6, x86_64 काम नहीं करता है। – Hongli

+0

न तो यूबंटू पर काम करता है :( –

+0

PR_SET_NAME के ​​साथ 16 को बदलने का प्रयास करें – Dan

4

ProcName पुस्तकालय ubuntu पर मेरे लिए काम नहीं किया है। मैं इसके बजाय setproctitle के साथ चला गया (pip install setproctitle)। यह बंदूक का उपयोग करता है और यह मेरे लिए काम करता है।

11

सरल है (आपको किसी भी libs आयात करने की आवश्यकता नहीं है) लेकिन शायद इतना सुरुचिपूर्ण तरीका नहीं है। आपको शेबांग लाइन के अंदर "env" का उपयोग नहीं करना है।

दूसरे शब्दों में, यह "अजगर" प्रक्रिया सूची में के रूप में नामित किया जाएगा:

#!/usr/bin/env python 

लेकिन यह अपने SCRIPTNAME स्क्रिप्ट के साथ नाम दिया जाएगा:

#!/usr/bin/python 

तो तुम कर सकेंगे इसे pidof -x scriptname या ps -C scriptname

+1

यह वही है जो मैं ढूंढ रहा हूं। धन्यवाद – user1061392

+0

प्रभावी जब हम बैश फ़ाइलों के साथ काम कर रहे हैं। धन्यवाद। – dlopezgonzalez

संबंधित मुद्दे