2011-08-27 5 views
5

शीर्षक बहुत अधिक बताता है। मेरे पास एक ज़ोटोनिक साइट है जो हार्ट के साथ चल रही है, यह बहुत सीपीयू समय का उपयोग करती है और मुझे एरलांग खोल नहीं मिल सकता है। तो, क्या वीएम को मारने का कोई तरीका है? killall heart और killall beam.smp काम नहीं कर रहे हैं।क्या यह एर्लांग वीएम को मारने का कोई तरीका है जब यह दिल से चल रहा है?

मुझे यह प्रश्न मिला: Stop Erlang Daemon , लेकिन यह वास्तव में मेरे प्रश्न का उत्तर नहीं देता है।

+3

मेरे अनुभव में पहले बीम या बीम.smp की हत्या के बाद दिल की हत्या करना चाल है। –

+0

@ स्टेव मैंने सफलता के बिना कोशिश की। तब से मुझे एक खोल प्राप्त करने में सक्षम होने की समस्या नहीं मिली है, अर्थात् यह: http://groups.google.com/group/zotonic-users/browse_thread/thread/b3971b574e405bcc?pli=1। इसलिए मैंने इसे अंतर्निहित मुद्दे को हल करके हल किया :)। फिर भी, मुझे लगता है कि यह कैसे करना बेहतर दस्तावेज (कहीं) होना चाहिए। –

+1

एक कमांड लाइन में दिल और फिर बीम को मार डालो। हमेशा मेरे लिए काम करता है। हम (ज़ोटोनिक टीम) गैर-दिल समाधान देख रहे हैं। –

उत्तर

2

बस का उपयोग करें:

init:stop(). 

यह दिल की प्रक्रिया और सभी आवेदनों को मार डालेगा।

+1

लेकिन उन्होंने कहा कि उन्हें एक एरलांग खोल नहीं मिल सकता है, क्योंकि प्रक्रिया बहुत अधिक CPU का उपयोग कर रही है, इसलिए मुझे नहीं लगता कि इससे इस विशेष मामले में मदद मिलती है। –

+0

ओह, मैंने 'एरलांग खोल नहीं मिल सकता' भाग पर ध्यान नहीं दिया ... – Isac

2

मुझे यह वही समस्या थी .... और इसे मारना वाकई मुश्किल था। मैंने सामान्य पथों की कोशिश की और इसे नहीं कर सका। तो मैं इस हैक किया:

पहले की पीआईडी ​​

sudo netstat -tulpn |grep 8080 
tcp  0  0 0.0.0.0:8080   0.0.0.0:*    LISTEN  931/beam.smp  

मिलता है तो पीआईडी ​​931.

अगला जो प्रोग्राम है जो प्रक्रिया बनाई गई है?

lsof -p 931 | grep txt 
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/agarcia/.gvfs 
     Output information may be incomplete. 
beam.smp 931 yaws txt REG  8,1 2053256 22793377 /usr/lib/erlang/erts-5.8.5/bin/beam.smp 

तो कार्यक्रम है .../bin/beam.smp तो बस यह

mv beam.smp old_beam.smp 

ले जाने और अब तुम्हें मार यह

kill -9 931 

और मैं अंत में करने में सक्षम था इसे मारो :-)

यह विश्वसनीयता का उल्लंघन करने का एक प्रमाण है जिसे वास्तव में हैक करने की आवश्यकता है-इसे सक्षम करने के लिए सेवा को खाली करने के लिए।

ps: मैंने मूल रूप से yaws -I [pid] --stop की कोशिश की लेकिन यह या तो काम नहीं किया।