如何保持redis服务器运行
我在nodejs应用程序中使用redis进行会话支持。我已经安装了redis server,当我运行redis server时它可以工作,但当我关闭终端时,redis停止工作。如何在关闭终端后保持redis server运行?将redis作为守护进程启动的最简单方法是编辑配置文件并更改以下行:如何保持redis服务器运行,redis,Redis,我在nodejs应用程序中使用redis进行会话支持。我已经安装了redis server,当我运行redis server时它可以工作,但当我关闭终端时,redis停止工作。如何在关闭终端后保持redis server运行?将redis作为守护进程启动的最简单方法是编辑配置文件并更改以下行: # By default Redis does not run as a daemon. Use 'yes' if you need it. # Note that Redis will write a
# 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发行版中提供了一个配置文件示例。正如@DidierSpezia在回答中提到的 在Redis conf文件中设置
daemonize yes
。
通常在Redis conf文件的/path/to/Redis.conf
中设置daemonize yes
它应该在/etc/
上
以及:
然后使用conf文件作为参数触发redis server:
./redis-server /etc/redis.conf
更新
您也可以使用demonize
标志直接运行redis
redis-server --daemonize yes
如果您想要一个快速选项,请运行:
redis server--daemonize yes
接受的答案大多已经过时。
这个问题由来已久,但谷歌的排名仍然很高,所以请允许我纠正一下
OP没有提供关于他的设置的任何细节,但是你可以假设它是linux,他没有提到容器,所以你也可以假设他运行的redis没有容器
有三个细节使得被接受的答案成为一件容易忘记的事情
- 大多数(流行的)发行版默认附带systemd
- 大多数(流行的)发行版的官方回购协议中都有redis
- 该官方redis软件包为redis安装systemd服务
- 它的默认配置中将有
受监控的系统D
- 要启动:使用
替换“instanceName”的位置。同时sudo systemctl start启动redis守护进程redis@instanceName
用于启动时自动启动。(顺便说一句,忘了sudo系统控制激活redis@instanceName
,以及初始化脚本吧!现在它们的可移植性比直接调用服务启动
要差)systemctl
- 不要设置为
,这将干扰systemd监视redis李>daemonize:yes
如果三个细节(使systemd成为正确答案)不符合/不相关,则您很可能正在运行redis containerized。对于docker/podman/等来说,这完全是另一个问题。。。(内部linux中没有systemd,但您必须(或已经)监督(d)容器守护进程本身)我看到这是作为守护进程运行它的方式,但是,作为守护进程,您使用什么命令来运行它呢?这取决于平台和操作系统发行版。下一个搜索结果是,这个答案有几个问题:1)它没有告诉用户配置文件存储在哪里。2) 它没有说这个答案适用于哪个平台(如果配置文件有不同的位置;至少提供您在哪个平台下安装它以获得此结果)3)它甚至没有说配置文件的名称。您的回答给了我一个想法,解决了我的问题。我将
daemonize
选项设置为yes,并试图使用-D前台保持Docker容器的活动状态,但它不工作,容器正在退出。我去掉了这个选项,将daemonize
选项改回了no,它成功了,容器保持了活动状态。请问这与redis server&
有什么区别?@Uduse如果最后用&
运行它,那么当您退出终端时,服务器进程将被终止@JonDeaton感谢您的解释,但是使用nohup redis server&
vsredis server--daemonize
怎么样?我的意思是,似乎有一种方法可以实现相同的功能,而不必使用--daemonize
,而实际上并不需要这个选项。