想要在后台持续运行redis-server

78

我已经下载了redis-2.6.16.tar.gz文件并成功地安装了它。安装完成后,我运行了src/redis-server,它可以正常工作。

但是,我不想每次都手动运行src/redis-server,而是想让redis-server在后台持续运行。

到目前为止,在我的安装完成后,我完成了以下任务:

1. 使用vim命令打开redis.conf文件并进行以下更改:

# 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 在后台运行之后,我将使用以下命令作为后台进程来运行 Juggernaut。

nohup node server.js

但我无法使Redis在后台运行。请提供一些解决方案。


2
什么操作系统?在执行“sudo apt-get install redis-server”命令之后,服务器会按照您的预期运行。 - Dirk Eddelbuettel
这是Ubuntu操作系统,好的我会检查这个命令。 - siv rj
在这里呢。那你为什么不安装该程序包并结束呢? - Dirk Eddelbuettel
由于Redis已经通过apt-get安装,我需要卸载旧版本,而且之前几个月我安装的包也一直在工作。 - siv rj
非常感谢你,你节省了我的时间。从今天起,我再也不会使用redis安装包了。 - siv rj
6个回答

290

自从 Redis 2.6 版本以来,可以直接使用命令行传递 Redis 配置参数。这对于测试非常有用。

redis-server --daemonize yes

检查进程是否已启动:

ps aux | grep redis-server

9
谢谢你的答复。如果想要在后台验证它是否工作正常,你可以使用以下命令:redis-cli ping - Aronis Mariano
3
@AronisMariano 和 PONG 作为响应 :) - Chemical Programmer
7
只需在您的 ~/.bash_profile 文件中添加 alias redis-server='redis-server --daemonize yes',然后每次在命令行键入 redis-server 时,就会自动使用守护进程。 - Benyi
我希望这个标志在 --help 文档中有所体现。这帮助我使用 subprocess 直接从 Python 中加载它:subprocess.Popen(['redis-server', '--daemonize', 'yes']) - Andrew Bowman
1
这帮助我在几秒钟内解决了一个生产错误! - Stefano Groenland
1
不可避免的后续问题是如何停止/关闭守护进程redis-server。对我来说,redis-cli shutdown有效。更多信息请参见:https://dev59.com/IKnka4cB1Zd3GeqPTMEq - Viet Than

17

我认为最好的方法是使用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

在配置文件中将daemonize设置为yes。假设文件路径为~/.redis/redis.conf,然后运行以下命令:

$ redis-server ~/.redis/redis.conf

它只是起作用。


10

你也可以简单地运行它:src/redis-server redis.conf&


谢谢,我会尝试的,目前问题已经解决了。 - siv rj
1
您也可以在命令行中传递配置值,请参阅Redis配置文档:http://redis.io/topics/config要在命令行中将其设置为守护进程,请使用以下命令:redis-server --daemonize yes - chnrxn
关于后台作业的更多信息:https://www.digitalocean.com/community/tutorials/how-to-use-bash-s-job-control-to-manage-foreground-and-background-processes - TomFuertes

3
对于Windows系统:
步骤1:将Redis安装为服务。
redis-server --server-install 

步骤2:运行后台。
redis-server --server-start 

2
在后台运行 Redis 服务器并忽略输出。
nohup redis-server &

检查服务器

ps aux | grep redis-server 

关闭服务器

sudo service redis-server stop

1

当你想要在后台运行一个应用程序时,你可以使用PM2。

  • 通过npm将pm2包下载为全局安装。https://www.npmjs.com/package/pm2
    • npm i -g pm2
  • 然后你可以启动redis服务器。
    • pm2 start "redis-server" --name redis-caching-session

你可以通过pm2 status命令检查pm2会话,并通过pm2 logs redis-caching-server命令获取redis服务器的日志。

编辑:9年后,我刚看到这篇帖子 :) 这个答案可能对其他人有所帮助,所以我想分享一下。


确实,这将对那些使用Node.js和进程管理器pm2的人非常有帮助。感谢您宝贵的反馈。+1 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接