如何保持Redis服务器运行


82

我正在使用redis在nodejs应用程序中提供会话支持。我已经安装了redis服务器,当我运行redis-server时,它可以工作,但是当我关闭终端redis时,它停止工作,并且不起作用。关闭终端后如何保持Redis服务器运行?

Answers:


73

将Redis作为守护程序启动的最简单方法是编辑配置文件并更改以下行:

# 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

启动配置文件时,请确保在redis-server命令行上提供该配置文件。

Redis发行版中提供了一个配置文件示例。


我看到这是将其作为守护程序运行的方式,但是您使用什么命令将其作为守护程序运行?
Michael Fender

这取决于平台和OS的分布。
Didier Spezia 2014年


10
这个答案有几个问题:1)它不会告诉用户配置文件的存储位置。2)并没有说明此答案适用于哪个平台(如果配置文件位于不同的位置;至少提供了您在哪个平台上安装了此文件才能获得此结果)3)它甚至没有说出名称是什么配置文件是。
乔治·斯托克

您的回答给了我一个主意,解决了我的问题。我将daemonize选项设置为yes,并尝试使用使其活动的Docker容器保持活动,-D FOREGROUND但是它无法正常工作,并且该容器正在退出。我摆脱了这个选项,将daemonize选项改回否,它可以正常工作,容器保持活动状态。
Stephane

189

并且,如果您需要快速选择,请运行:redis-server --daemonize yes


2
请问这和之间有什么区别redis-server &
Uduse

4
@Uduse如果&最后运行,则退出终端时,服务器进程将被杀死。stackoverflow.com/a/15595391/6263317
乔恩·迪顿

1
@JonDeaton感谢您的解释,但是使用nohup redis-server &vsredis-server --daemonize呢?我的意思是,似乎有一些方法可以不使用--daemonize而实现相同的功能,并且确实不需要该选项。
Uduse

21

正如@DidierSpezia在回答中提到的那样,

daemonize yes在Redis conf文件中设置。daemonize yes在Redis conf文件中设置,/path/to/redis.conf通常位于/etc/

和:

然后使用conf文件作为参数触发redis-server:

./redis-server /etc/redis.conf

更新 您也可以直接使用demonize标志运行redis

redis-server --daemonize yes

-1

在Linux中,我不确定Windows是否使用nohup在后台运行Redis。

  1. 转到redis src目录,在我的情况下为/ opt / redis-stable / src
  2. 运行命令nohup ./redis-server &
  3. 现在,redis在后台开始
  4. 现在按ctrl + c退出并将日志打印到nohup.out文件,您可以将其尾部进行监视
  5. 使用tail -f nohup.out查看redis的日志

@domdambrogia使用Nohup不会退出,它将在后台运行。检查nohup.out是否有日志
Mohammed Irfan Tirupattur

1
您是正确的,我只读了&符内联代码,而没有其他答案。我将删除我的评论!
domdambrogia

@MohammedIrfanTirupattur:但这并没有运行,因为守护进程知道!当航站楼关闭时,它会被杀死
Aarish Ramesh

@AarishRamesh不,它不会..它将在后台运行,不要忘记使用&符,您还可以从当前目录的nohup.log中查看日志
Mohammed Irfan Tirupattur
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.