2009-09-05 12 views
25

यह मेरे लिए एक नया है: यह त्रुटि क्या इंगित करती है?/usr/bin/perl: खराब दुभाषिया: पाठ फ़ाइल व्यस्त

/usr/bin/perl: bad interpreter: Text file busy 

डिस्क गहन समय में चल प्रक्रियाओं के एक जोड़े थे, लेकिन मैं वास्तव में — से पहले उस संदेश कभी नहीं देखा है, यह पहली बार है कि मैं जब चलाने के लिए प्रयास में कोई त्रुटि हो रही है याद कर सकते हैं एक पर्ल स्क्रिप्ट। प्रतीक्षा के कुछ सेकंड बाद, मैं इसे चलाने में सक्षम था, और इस मुद्दे को तब तक नहीं देखा है, लेकिन इसके लिए स्पष्टीकरण होना अच्छा लगेगा।

उबंटू 9.04 चल रहा है, फ़ाइल सिस्टम ext3 है।

+0

एसएफ: http: // serverfault भी देखें।कॉम/प्रश्न/21561/खराब-दुभाषिया-पाठ-फ़ाइल-व्यस्त – Ether

उत्तर

18

मुझे लगता है कि आपको this issue का सामना करना पड़ा।

लिनक्स कर्नेल bad interpreter: Text file busy त्रुटि उत्पन्न करेगा यदि आपकी पर्ल स्क्रिप्ट (या किसी अन्य प्रकार की स्क्रिप्ट) इसे निष्पादित करने का प्रयास करते समय लिखने के लिए खुली है।

आप यह नहीं कहते कि डिस्क-गहन प्रक्रियाएं क्या कर रही थीं। क्या यह संभव है कि उनमें से एक को स्क्रिप्ट + लिखने के लिए खुली स्क्रिप्ट हो (भले ही वह वास्तव में कुछ भी लिख नहीं रहा हो)?

+0

यह उचित लगता है - मैं स्क्रिप्ट पर काम कर रहा था, और ऐसा हुआ जैसे मैंने इसे सहेजा और फिर इसे चलाने की कोशिश की। – chris

+3

तो शायद "डिस्क-गहन प्रक्रिया" ने आपकी स्क्रिप्ट पर कुछ भी नहीं किया है, लेकिन यह डिस्क को इतनी व्यस्त रखती है कि स्क्रिप्ट को लिखते समय आप रुक गए और इसे कई सेकंड तक खोल दिया। – hobbs

+0

यही वह है जो मैं सोच रहा हूं - ऐसा लगता है कि किसी भी मामले में यह समझ में आता है। – chris

1

यह हमेशा पर्ल दुभाषिया (/ usr/bin/perl) के साथ पहुंचने योग्य नहीं है। वास्तव में, ऐसा तब होता है जब एक शेल स्क्रिप्ट चल रही है या अजीब है या जो भी # पर है! लिपि के शीर्ष पर लाइन।

कारण कई चीजें हो सकती है ... परमिट, लॉक फ़ाइल, फाइल सिस्टम ऑफलाइन, और चालू और चालू।

यह स्पष्ट रूप से इस बात पर निर्भर करेगा कि समस्या के दौरान जब आप इसे चला रहे थे तो क्या हो रहा था। लेकिन मुझे उम्मीद है कि जवाब वह है जिसे आप ढूंढ रहे थे।

+1

त्रुटि संदेश "टेक्स्ट फ़ाइल व्यस्त" का एक विशिष्ट अर्थ है, और आपके द्वारा उल्लेखित किसी भी मुद्दे के कारण नहीं होगा। – duskwuff

+1

@duskwuff, विस्तृत करने के लिए देखभाल? क्या आप अपने ज्ञान को बाकी के साथ साझा कर सकते हैं? (बीटीडब्ल्यू, मेरा शोध कहता है कि मैं वास्तव में क्या साझा कर रहा था)। – Rap

+0

@duskwuff विशिष्ट अर्थ _exactly_ यह उत्तर क्या वर्णन करता है। इसे स्वयं आज़माएं - खोलने के लिए खुला/usr/bin/perl, और एक perl स्क्रिप्ट चलाने का प्रयास करें। हां, "टेक्स्ट फाइल" थोड़ा भ्रामक है, लेकिन यही वजह है कि दशकों तक त्रुटि को मानकीकृत किया गया है। –

0

यदि स्क्रिप्ट को विंडोज़ में संपादित किया गया था, या किसी अन्य ओएस के साथ "मूल" रेखा समाप्ति के साथ संपादित किया गया था, तो यह पहली पंक्ति के अंत में CR(^M) "छिपाने" के रूप में सरल हो सकता है। वीआई सुधार को इस गैर देशी रेखा को समाप्त करने के लिए सेट किया जा सकता है। मेरे मामले में मैंने छठी में अपमानजनक पहली पंक्ति को फिर से टाइप किया और त्रुटि चली गई।

2

आप जीएनयू समानांतर उपयोग कर रहे हैं और आपको यह त्रुटि तो यह हो सकता है क्योंकि आप एक ही स्थान कि आप फ़ाइल बाहर लिख रहे हैं से में एक फ़ाइल स्ट्रीमिंग कर रहे हैं ...

+0

यह मेरे मामले में क्या हो रहा था। – Kaunteya

2

यह इसलिए होता है क्योंकि स्क्रिप्ट फ़ाइल लेखन के लिए खुला है, संभवतः एक दुष्ट प्रक्रिया द्वारा जो समाप्त नहीं हुआ है।

समाधान: जांचें कि कौन सी प्रक्रिया अभी भी फ़ाइल तक पहुंच रही है, और इसे समाप्त कर दें।

उदाहरण के लिए:

# /root/wordpress_plugin_updater/updater.pl --wp-path=/var/www/virtual/joel.co.in/drjoel.in/htdocs 
-bash: /root/wordpress_plugin_updater/updater.pl: /root/perl/bin/perl: bad interpreter: Text file busy 

भागो lsof (सूची खुली फ़ाइलों आदेश) स्क्रिप्ट नाम पर:

# lsof | grep updater.pl 
sftp-serv 4416   root 3r  REG   144,103 11043 33046751 /root/wordpress_plugin_updater/updater.pl 

अपने पीआईडी ​​द्वारा प्रक्रिया को मारने:

kill -9 4416 

अब चलाने की कोशिश करें फिर से लिपि। यह अब काम करता है।

# /root/wordpress_plugin_updater/updater.pl --wp-path=/www/htdocs 
Wordpress Plugin Updater script v3.0.1.0. 
Processing 24 plugins from 

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

  • कोई संबंधित समस्या नहीं^_^