Tại sao systemctl không khởi động máy chủ redis trên CentOS 7?


13

Tôi đã cài đặt redis trên hộp CentOS 7 mới nhưng không thể khởi động nó bằng systemctl.

Nó đã được cài đặt như thế này:

rpm -i http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
yum install redis

Cố gắng để bắt đầu nó như thế này dường như thất bại âm thầm (không có đầu ra):

systemctl start redis-server # also tried redis-server.service

Đây là những gì xảy ra khi cố gắng kết nối:

redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>

Nhưng bắt đầu nó hoạt động bằng tay:

[root@redis ~]# redis-server /etc/redis.conf
[root@redis ~]# redis-cli
127.0.0.1:6379>

Bất cứ ai cũng biết những gì đang xảy ra, hoặc làm thế nào để gỡ lỗi này?

CẬP NHẬT: Đầu ra của /var/log/redis/redis.logbên dưới. Btw đó là VPS RAM 512mb.

[1972] 29 Jul 18:52:16.258 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
[1972] 29 Jul 18:52:16.258 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
[1972] 29 Jul 18:52:16.258 # Current maximum open files is 1024. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 2.8.13 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in stand alone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 1972
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

[1972] 29 Jul 18:52:16.259 # Server started, Redis version 2.8.13
[1972] 29 Jul 18:52:16.259 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[1972] 29 Jul 18:52:16.260 * DB loaded from disk: 0.001 seconds
[1972] 29 Jul 18:52:16.260 * The server is now ready to accept connections on port 6379
[1972] 29 Jul 18:52:16.265 # User requested shutdown...
[1972] 29 Jul 18:52:16.265 * Saving the final RDB snapshot before exiting.
[1972] 29 Jul 18:52:16.267 * DB saved on disk
[1972] 29 Jul 18:52:16.267 * Removing the pid file.
[1972] 29 Jul 18:52:16.267 # Redis is now ready to exit, bye bye...

Và trạng thái:

[root@redis ~]# systemctl status redis-server
redis-server.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis-server.service; disabled)
   Active: inactive (dead)

Jul 29 18:52:16 redis systemd[1]: Starting Redis persistent key-value database...
Jul 29 18:52:16 redis systemd[1]: Started Redis persistent key-value database.

2
Nó khởi động OK, tất nhiên, và sau đó User requested shutdown...Không có lý do rõ ràng cho điều đó.
Michael Hampton

@MichaelHampton vâng, nó tắt ngay lập tức. Tôi thực sự muốn biết tại sao! Sự khác biệt duy nhất tôi có thể thấy khi chạy thủ công là nó chạy dưới quyền root (không phải người dùng làm lại).
Zubin

Câu trả lời:


24

Cuối cùng, sửa nó. Systemd yêu cầu redis chạy không daemonised, do đó, cấu hình cần thay đổi:

# /etc/redis.conf
daemonize yes # << comment this out

Tuyệt quá. Đây là một lỗi trong tệp đơn vị systemd và bạn nên báo cáo nó .
Michael Hampton

Bạn đã bao giờ giải quyết điều này? Bạn đã không đánh dấu nó là giải quyết.
Michael Hampton

1
@MichaelHampton Yep, kỹ thuật trên đã có hiệu quả. Ngoài ra, tôi đã gửi lỗi và nó đã được sửa.
Zubin

ban phước cho bạn, đồ khốn xinh đẹp
Artur Sapek

Tôi thấy rằng tôi cũng cần chỉnh sửa tệp redis.service (trong /etc/systemd/system/multi-user.target.wants), được liên kết với /usr/lib/systemd/system/redis.server. Tôi đã đổi --daemonize yesthành, bạn đoán nó , --daemonize no.
Martin
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.