Redis Datastore सर्वर (Ubuntu 16.04.1 LTS) शुरू करने में विफल


10

मैंने अभी रेडिस स्थापित किया है और यह कमांड के साथ सेवा शुरू करने की कोशिश करते समय बिल्कुल भी काम नहीं करता है:

sudo service redis-server start

इसका परिणाम यह है journalctl -xe:

Subject: Unit redis-server.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit redis-server.service has finished shutting down.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.

और यह परिणाम है systemctl status redis-server.service:

 redis-server.service - Redis Datastore Server
 Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
 Active: inactive (dead) (Result: resources) since Kam 2017-03-02 13:22:46 WIB; 5min ago
 Process: 12120 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)

Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.
Mar 02 13:22:46 aaaaa-notebook systemd[1]: redis-server.service: Unit entered failed state.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Failed with result 'resources'.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Mar 02 13:22:46 aaa-notebook systemd[1]: Stopped Redis Datastore Server.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.

जवाबों:


14

मेरे पास एक ही मुद्दा था और कहीं भी काम करने का हल नहीं मिल रहा था। कुछ खोज के बाद, निम्नलिखित फिक्स ने मेरे लिए काम किया (Ubuntu 16.04)

में /etc/systemd/system/redis.service के अंतर्गत निम्नलिखित जोड़ने [Service]अनुभाग।

Type=forking

1
मेरा भी, धन्यवाद! आपने इसे कैसे जोड़ा? यह वास्तव में क्या करता है?
fpghost

4

जो भी संपादक है उसका उपयोग करके अपनी सेवा खोलें।

vim /etc/systemd/system/redis.service

अपने को देखो [Service]अनुभाग में ExecStartमेरा था:

ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf

इस कमांड को यह देखने के लिए चलाएं कि क्या त्रुटियां उत्पन्न हो रही हैं। मेरा इस के साथ जवाब दिया:

 Fatal error, can't open config file '/etc/redis/redis.conf'

इसलिए मैंने अभी उस लाइन को इस पर अपडेट किया है (जहां मेरी वास्तविक कॉन्फ़िग फ़ाइल थी)

ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf

जहां रेडिस क्विकार्टार्ट डिफ़ॉल्ट रूप से इसे रखता है ... :)


2

मैंने उसी त्रुटि का सामना किया। लेकिन मेरे लिए इसका कारण बिलकुल अलग था: यह मेरी redis.confफाइल में एक टाइपो के कारण था । उस को ठीक करना और sudo systemctl restart redis-serverतुरंत रेडिस को फिर से शुरू करना। यह भ्रामक है कि इस मामले के लिए भी एक ही त्रुटि की जा रही है।


2

मेरे मामले में, लॉग निर्देशिका ( /var/log/redis) जिसका मैंने /etc/redis/redis.confफ़ाइल में उल्लेख किया था, मौजूद नहीं थी

मुझे त्रुटि कैसे मिली

प्रयत्न

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

यह मेरी /etc/systemd/system/redis.serviceफाइल में मौजूद कमांड है

ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf

समाधान

1) लॉग डायरेक्टरी बनाएं

sudo mkdir -p /var/log/redis

2) लॉग बनाने और लिखने के लिए उचित पहुँच दें

sudo chown redis:redis /var/log/redis

सेवा को फिर से शुरू करने का प्रयास करें

sudo service redis-server start 

या

sudo service redis start

1

redis.service फ़ाइल "/ etc / systemd / system /" निर्देशिका में अनुपलब्ध है

सुडो नैनो /etc/systemd/system/redis.service

फिर इन पंक्तियों को कॉपी और पेस्ट करें

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

इस फ़ाइल को सहेजें और बंद करें

अगली निर्देशिका अनुमति को संशोधित करें

$ sudo adduser --system --group --no-create-home redis
$ sudo chown redis:redis /var/lib/redis
$ sudo chmod 770 /var/lib/redis

अगला रेडिस सर्वर शुरू करें

$ sudo systemctl की शुरुआत रेडिस से होती है

अब चल रहा है तो जाँच करें

$ sudo systemctl स्टेटस रेडिस

संदर्भ: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04


0

कृपया अपनी जाँच करें redis.log। आपको कुछ इस तरह से देखना चाहिए:

41393:M 07 Jun 17:02:19.034 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
41393:M 07 Jun 17:02:19.034 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
41393:M 07 Jun 17:02:19.034 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
41393:M 07 Jun 17:02:19.034 # Can't open the append-only file: Read-only file system

इसलिए अपने सिस्टम की सीमाओं की जांच करें और हो सकता है कि आपके redisAOF ( /var/lib/redis/*) की फ़ाइल अनुमति । सिस्टम सीमा के लिए, यहां एक अच्छा मार्गदर्शक है


0

मुझे एक / var / lib / redis फ़ोल्डर और एक redis उपयोगकर्ता और समूह दोनों की आवश्यकता थी।

मैंने अपने मुद्दों को खोजने के लिए केविन अपटन के https://askubuntu.com/a/981641/451682 सलाह का उपयोग किया : vim /etc/systemd/system/redis.serviceमुझे वह /usr/local/bin/redis-server /etc/redis/redis.confजवाब दिया Can't chdir to '/var/lib/redis': No such file or directoryजिसके साथ मैंने बनाया था sudo mkdir /var/lib/redis

तो फिर, हालांकि, मैं भी redis उपयोगकर्ता और समूह और खटखटाने बनाने के लिए आवश्यक है कि पर / var / lib / redis dir, निम्नलिखित Rishik रोहन के https://askubuntu.com/a/918408/451682 :

sudo adduser --system --group --no-create-home redis
sudo chown redis:redis /var/lib/redis
sudo chmod 770 /var/lib/redis

धन्यवाद दो!


0

सभी आदेश बनाने के बाद इन आदेशों का प्रयास करें

sudo systemctl daemon-reload

sudo chown redis:redis /var/lib/redis

sudo chmod 770 /var/lib/redis

और बाद में

sudo systemctl start redis

0

उस समस्या को हल करने के लिए चरण: - + ============== + ए स्मृति सीमा Redis.conf में 566% सेट करें

566 मैक्समोरी 256mb 567 मैक्सिममोरी-पॉलिसी एलकीज-ल्रु

B. लिनक्स कर्नेल को 1 पर मेमोरी सेट करने के लिए सेट करें:

$ सुडो sysctl vm.overcommit_memory = 1

या /etc/sysctl.conf और इसे 1 में बदलें।

C. अब रेडिस सर्वर को पुनरारंभ करें।

$ systemctl फिर से शुरू होता है

कृपया अब Redis स्थिति देखें।

और अगर फिर भी समस्या जारी रहती है, तो जाएँ और संपादित करें और सेवा फ़ाइल को फिर से बनाएँ

========= vi /etc/systemd/system/redis.service

आप इस तरह देखेंगे: -

[यूनिट] विवरण = नेटवर्क के बाद Redis-Memory डेटा स्टोर

[सेवा] उपयोगकर्ता = रूट समूह = रूट ExecStart = / usr / स्थानीय / बिन / सर्वर /etc/redis/redis.conf ExecStop = / usr / स्थानीय / बिन / redis-clis शट डाउन पुनरारंभ = हमेशा

Type = forking

[इंस्टॉल करें] WantedBy = multi-user.target

इसे बदलें ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf

सेवा

ExecStart = / usr / लोकल / बिन / रेडिस-सर्वर /etc/redis.conf

अब, redis सेवा प्रारंभ करें

$ systemctl की शुरुआत रेडिस से होती है

अब रेडिस बिना किसी त्रुटि के शुरू करेगा।

+ ============== +

रेडिस का परीक्षण: -

[root @ server] # redis-cli 127.0.0.1:6379> पिंग किसी दिए गए स्ट्रिंग को इको करने के लिए इको कमांड का उपयोग करें: 127.0.0.1:6379> इको "Tecmint Redis का परीक्षण कर रहा है" आप सेट कमांड का उपयोग करके एक महत्वपूर्ण मान भी सेट कर सकते हैं। इस तरह: 127.0.0.1.16379> सेट mykey "Redis का परीक्षण कर रहा है" अब mykey का मूल्य देखें: 127.0.0.1.16379> mykey प्राप्त करें "Redis" 127.0.0.1:6379 परीक्षण कर रहा है: "root @ server] #

अब रेडिस सफलतापूर्वक चलने लगी और चल पड़ी।

+ ================== +

सादर धन्यवाद

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.