2013-04-22 9 views
6

नीचे शट डाउन मैंने अपनी स्थानीय मशीन पर पहली बार रेडिस शुरू की और बाद में मैंने अपने रेल ऐप को बंद करने के बाद सभी टर्मिनल विंडो बंद कर दीं। एक घंटे बाद, मैं फिर से रेल एप्लिकेशन को शुरू कर दिया और redis सर्वर शुरू करने के लिएरेडिस

redis-server /usr/local/etc/redis.conf 

हालांकि निम्नलिखित किया था, यह मेरे

# Opening port 6379: bind: Address already in use 

कहा कि मैं इसलिए मान लिया यह अभी भी पहले के उदाहरण भी चल रहा था हालांकि मैंने अपने मैक पर टर्मिनल विंडोज़ बंद कर दी।

यह पेज http://redis.io/commands/shutdown को देखते हुए, मैं

SHUTDOWN 
टर्मिनल विंडो में

भागने की कोशिश की, लेकिन मैं इस प्रतिक्रिया

SHUTDOWN: NOT super-user 

इसलिए मैं करने की कोशिश की (भले ही मैं sudo का उपयोग नहीं किया मिल इसे शुरू करें)

sudo SHUTDOWN 

और इसके बाद मुझे अपने पासवर्ड के लिए मुझसे पूछा, यह

usage: shutdown [-] [-h [-u] [-n] | -r [-n] | -s | -k] time [warning-message ...] 

लेकिन जब मैं बेतरतीब ढंग से shutdown -s भाग गया यह

SHUTDOWN: NOT super-user 

बंद Redis के लिए उचित तरीके से जब मैं अपने एप्लिकेशन को बंद क्या है कहा?

+0

अरे, मैंने गलती से आपके प्रश्न को कम किया 15 मिनट पहले। मुझे अभी एहसास हुआ है कि मैं इसे पूर्ववत नहीं कर सकता। यदि आप इसे संपादित करते हैं तो मुझे लगता है कि मैं इसे पूर्ववत कर सकता हूं। मैं वास्तव में, वास्तव में माफी चाहता हूँ। – Leandro

उत्तर

4

यह आपके टर्मिनल पर निष्पादित नहीं होने के लिए रेडिस के आदेश के रूप में भेजा जाना है।

इस मामले में आप वास्तव में kill टर्मिनल से रेडिस कर सकते हैं, क्योंकि SIGTERM सिग्नल प्राप्त करने के बाद यह बस बाहर निकलने के बजाय एक शट डाउन शेड्यूल करेगा।

संदर्भ see the signal handling doc page.

+0

असल में, 'मार' चलाना मुझे यह मार देता है: उपयोग: मारो [-s sigspec | -एन साइनम | -sigspec] पिड | jobspec ... या kill -l [sigspec] – BrainLikeADullPencil

+0

आपको प्रक्रिया आईडी को मारने की आवश्यकता है, इसलिए यह जानता है कि SIGTERM सिग्नल कहां भेजना है। इस पर एक नज़र डालें: http://unixhelp.ed.ac.uk/CGI/man-cgi?kill – Nathan

+2

ठीक है, किसी को भी इस जवाब को देखने के लिए, मुझे 'redis-cli जानकारी' करके प्रक्रिया आईडी मिली है। grep process_id 'और फिर' 2694 को मारना ' – BrainLikeADullPencil

34

के लिए निर्मित redis ग्राहक का उपयोग करें: redis-cli shutdown

+1

ऐसा करने का यह सही तरीका लगता है। – Eddy

+0

शीर्ष उत्तर होना चाहिए। – sanny

+1

मेरे लिए काम नहीं कर रहा –

3

आपकी मशीन पर चल रहा Redis उदाहरण की प्रक्रिया आईडी जानकारी प्राप्त करें ...

> ps aux | grep redis 

impadmin 23277 0.0 0.0 35044 1976 pts/2 Sl+ 14:19 0:00 src/redis-server 

... और उसके बाद चलाएँ:

> kill 23277 
+2

मैंने इस दृष्टिकोण की कोशिश की, लेकिन यह ध्यान में रखा कि मेरी 'रेडिस-सर्वर' प्रक्रिया किसी कारण से अपने पीआईडी ​​को बदलती रही है ... तो हर बार जब मैं 'ps aux' चलाता था। grep redis' प्रदर्शित पीआईडी ​​'ps aux | के पिछले भाग से अलग होगा grep redis'। आखिरकार 'रेडिस-क्ली शट डाउन' मैं चाहता था। – mecampbellsoup