Cách giữ cho máy chủ redis hoạt động


82

Tôi đang sử dụng redis để hỗ trợ phiên trong ứng dụng nodejs. Tôi đã cài đặt máy chủ redis và nó hoạt động khi tôi chạy redis-server, nhưng khi tôi đóng thiết bị đầu cuối redis dừng lại và không hoạt động. Làm cách nào để tiếp tục chạy máy chủ redis sau khi đóng thiết bị đầu cuối?

Câu trả lời:


73

Cách dễ nhất để khởi chạy Redis dưới dạng daemon là chỉnh sửa tệp cấu hình và thay đổi dòng sau:

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes

Đảm bảo cung cấp tệp cấu hình trên dòng lệnh redis-server khi bạn khởi chạy nó.

Một ví dụ về tệp cấu hình được cung cấp trong bản phân phối Redis.


Tôi thấy đây là cách bạn chạy nó dưới dạng daemon, nhưng sau đó bạn sử dụng lệnh nào để chạy nó dưới dạng daemon?
Michael Fender

Nó phụ thuộc vào nền tảng và hệ điều hành phân phối.
Didier Spezia

kết quả tìm kiếm tiếp theo xuống digitalocean.com/community/tutorials/...
Nick

10
Có một số vấn đề với câu trả lời này: 1) nó không cho người dùng biết nơi lưu trữ tệp cấu hình. 2) Nó không cho biết câu trả lời này áp dụng cho nền tảng nào (nếu có các vị trí khác nhau cho tệp cấu hình; ít nhất hãy cung cấp nền tảng nào bạn đã cài đặt nó để có được kết quả này) 3) nó thậm chí không nói tên của tệp cấu hình là.
George Stocker

Câu trả lời của bạn đã cho tôi một ý tưởng, giải quyết vấn đề của tôi. Tôi đã daemonizeđặt tùy chọn thành có và đang cố gắng giữ cho vùng chứa Docker của nó tồn tại với -D FOREGROUNDnhưng nó không hoạt động và vùng chứa đang thoát. Tôi đã loại bỏ tùy chọn này và thay đổi daemonizetùy chọn trở lại thành không, và nó đã hoạt động, vùng chứa vẫn tồn tại.
Stephane

189

Và, nếu bạn muốn một lựa chọn nhanh chóng, chạy: redis-server --daemonize yes.


2
Tôi có thể hỏi sự khác biệt giữa cái này và redis-server &?
Uduse

4
@Uduse Nếu bạn chạy nó &ở cuối, thì khi bạn thoát khỏi thiết bị đầu cuối, quá trình máy chủ sẽ bị ngắt . stackoverflow.com/a/15595391/6263317
Jon Deaton

1
@JonDeaton cảm ơn đã giải thích, nhưng sau đó sử dụng nohup redis-server &vs redis-server --daemonizethì sao? Ý tôi là, có vẻ như có một số cách để đạt được chức năng tương tự mà không cần sử dụng --daemonizevà tùy chọn đó không thực sự cần thiết.
Uduse

21

Như được đề cập bởi @DidierSpezia trong câu trả lời của anh ấy,

Đặt daemonize yestrong tệp conf Redis. Đặt daemonize yestrong tệp conf Redis tại /path/to/redis.confNói chung nó sẽ ở đó tại/etc/ .

Và:

Sau đó, kích hoạt redis-server với tệp conf dưới dạng đối số:

./redis-server /etc/redis.conf

CẬP NHẬT Bạn cũng có thể trực tiếp chạy redis với demonizecờ

redis-server --daemonize yes

-1

Trong Linux, tôi không chắc chắn về windows Sử dụng nohup để chạy redis trong nền. Để chạy redis trong nền bằng nohup

  1. chuyển đến thư mục src redis, trong trường hợp của tôi là / opt / redis-stable / src
  2. chạy lệnhnohup ./redis-server &
  3. bây giờ redis đã bắt đầu trong nền
  4. bây giờ nhấn ctrl + c để thoát và nhật ký được in thành tệp nohup.out, bạn có thể điều chỉnh tương tự để theo dõi
  5. sử dụng tail -f nohup.out để xem nhật ký của redis

@domdambrogia sử dụng Nohup nó sẽ không thoát nó sẽ chạy trong nền. Kiểm tra nohup.out để biết nhật ký
Mohammed Irfan Tirupattur

1
Bạn nói đúng, tôi chỉ đọc ký hiệu và mã nội tuyến mà không có phần còn lại của câu trả lời của bạn. Tôi sẽ xóa bình luận của tôi!
domdambrogia

@MohammedIrfanTirupattur: Nhưng điều này không chạy nó như daemon biết! nó bị giết khi nhà ga đóng cửa
Aarish Ramesh

@AarishRamesh không nó không .. Nó sẽ chạy ở chế độ nền, đừng quên sử dụng dấu và và bạn cũng có thể kiểm tra nhật ký từ nohup.log trong thư mục hiện tại
Mohammed Irfan Tirupattur
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.