Không thể khởi động Redis Datastore Server (Ubuntu 16.04.1 LTS)


10

tôi chỉ cài đặt redis và nó hoàn toàn không hoạt động khi cố gắng khởi động dịch vụ bằng lệnh:

sudo service redis-server start

đây là kết quả của 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.

và đây là kết quả của 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.

Câu trả lời:


14

Tôi có cùng một vấn đề và không thể tìm thấy một giải pháp làm việc ở bất cứ đâu. Sau một số tìm kiếm, bản sửa lỗi sau đã có hiệu quả với tôi (Ubuntu 16.04)

Trong /etc/systemd/system/redis.service thêm phần sau vào [Service]phần này.

Type=forking

1
Của tôi cũng vậy, cảm ơn! Làm thế nào bạn khám phá để thêm điều này? Nó thực sự làm gì?
fpghost

4

Mở dịch vụ của bạn bằng bất kỳ trình soạn thảo nào.

vim /etc/systemd/system/redis.service

Nhìn vào [Service]phần của bạn tại ExecStartcủa tôi là:

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

Chạy lệnh này để xem những gì đang xảy ra lỗi. Của tôi đã trả lời với điều này:

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

Vì vậy, tôi mới cập nhật dòng đó (nơi tập tin cấu hình thực tế của tôi)

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

Đó là nơi redis bắt đầu nhanh chóng đặt nó theo mặc định ... :)


2

Tôi phải đối mặt với lỗi tương tự. Nhưng đối với tôi lý do hoàn toàn khác: Đó là do lỗi đánh máy trong redis.conftập tin của tôi . Sửa lỗi đó và thực hiện sudo systemctl restart redis-serverkhởi động lại redis ngay lập tức. Đó là sai lầm rằng lỗi tương tự cũng được ném cho trường hợp này.


2

Trong trường hợp của tôi, thư mục nhật ký ( /var/log/redis) mà tôi đề cập trong /etc/redis/redis.conftệp không có mặt

Làm thế nào tôi tìm thấy lỗi

Thử

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

Đây là lệnh tương tự có trong /etc/systemd/system/redis.servicetập tin của tôi

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

Giải pháp

1) Tạo thư mục nhật ký

sudo mkdir -p /var/log/redis

2) Cấp quyền truy cập thích hợp để tạo và viết nhật ký

sudo chown redis:redis /var/log/redis

Hãy thử bắt đầu lại dịch vụ

sudo service redis-server start 

hoặc là

sudo service redis start

1

tập tin redis.service bị thiếu trong thư mục "/ etc / systemd / system /"

sudo nano /etc/systemd/system/redis.service

sau đó sao chép và dán các dòng này

[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

lưu và đóng tệp này

tiếp theo sửa đổi thư mục cho phép

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

tiếp theo bắt đầu máy chủ redis

$ sudo systemctl bắt đầu làm lại

kiểm tra xem nó đang chạy chưa

$ sudo systemctl status redis

TÀI LIỆU THAM KHẢO: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ub Ubuntu-16-04


0

Vui lòng kiểm tra của bạn redis.log. Bạn sẽ thấy một cái gì đó như thế này:

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

Do đó, hãy kiểm tra giới hạn hệ thống của bạn và có thể cấp quyền cho redisAOF ( /var/lib/redis/*) của bạn . Đối với giới hạn hệ thống, đây là một hướng dẫn tốt .


0

Tôi cần cả thư mục / var / lib / redis và người dùng và nhóm redis.

Tôi đã sử dụng lời khuyên https://askubfox.com/a/981641/451682 của Kevin Upton để tìm ra vấn đề của mình: vim /etc/systemd/system/redis.servicedẫn tôi đến /usr/local/bin/redis-server /etc/redis/redis.confcâu trả lời Can't chdir to '/var/lib/redis': No such file or directorymà tôi đã tạo ra sudo mkdir /var/lib/redis.

Tuy nhiên, sau đó, tôi cũng cần tạo người dùng và nhóm redis và đăng ký trên thư mục / var / lib / redis, theo dõi https://askubfox.com/a/918408/451682 của Rishik Rohan :

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

Cảm ơn hai bạn!


0

sau khi thực hiện tất cả conf hãy thử các lệnh này

sudo systemctl daemon-reload

sudo chown redis:redis /var/lib/redis

sudo chmod 770 /var/lib/redis

Và sau

sudo systemctl start redis

0

Các bước để giải quyết vấn đề đó: - + ============== + A. Đặt giới hạn bộ nhớ trong redis.conf trong dòng số 566

566 maxmemory 256mb 567 maxmemory-chính sách allkeys-lru

B. đặt cài đặt bộ nhớ nhân Linux quá mức thành 1:

$ sudo sysctl vm.overcommit_memory = 1

hoặc /etc/sysctl.conf và thay đổi nó thành 1.

C. Khởi động lại máy chủ redis ngay bây giờ.

$ systemctl khởi động lại redis

Vui lòng kiểm tra ngay tình trạng Redis.

Và nếu vấn đề vẫn còn thì hãy đi và chỉnh sửa và làm lại tệp dịch vụ.

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

Bạn sẽ thấy như thế này: -

[Đơn vị] Mô tả = Redis Lưu trữ dữ liệu trong bộ nhớ After = network.target

[Dịch vụ] Người dùng = root Group = root ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli shutdown Restart = always

Loại = Ngã ba

[Cài đặt] WantedBy = multi-user.target

Thay đổi nó ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf

đến

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

Bây giờ, bắt đầu dịch vụ redis

$ systemctl bắt đầu làm lại

Bây giờ Redis sẽ bắt đầu mà không đưa ra bất kỳ lỗi nào.

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

Kiểm tra redis: -

[root @ server] # redis-cli 127.0.0.1:6379> ping Sử dụng lệnh echo để lặp lại một chuỗi đã cho: 127.0.0.1:6379> echo "Tecmint đang kiểm tra Redis" Bạn cũng có thể đặt giá trị khóa bằng lệnh set như thế này: 127.0.0.1:6379> set mykey "đang kiểm tra Redis" Bây giờ hãy xem giá trị của mykey: 127.0.0.1:6379> get mykey "đang kiểm tra Redis" 127.0.0.1:6379> exit [root @ server] #

Bây giờ redis bắt đầu thành công và chạy.

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

Cảm ơn & Trân trọng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.