Capistrano成功启动redis-server,但我登录时它不会运行
-
13-12-2019 - |
题
我有一个可以控制我的redis服务器的capistrano脚本。以下是问题的任务:
%w[start stop restart].each do |cmd|
desc "#{cmd}s redis-server"
task cmd, :roles => :app do
run "#{sudo} /etc/init.d/redis-server #{cmd}"
end
end
When I run this (deploying to a local vagrant VM) it says it's starts successfully:
> cap local redis:start
triggering load callbacks
* executing `local'
Deploying branch master
triggering start callbacks for `redis:start'
* executing `multistage:ensure'
* executing `redis:start'
* executing "sudo -p 'sudo password: ' /etc/init.d/redis-server start"
servers: ["192.168.33.10"]
Password:
[192.168.33.10] executing command
** [out :: 192.168.33.10] Starting redis-server:
** [out :: 192.168.33.10] redis-server.
command finished in 2054ms
.
但是,当我ssh时,redis-server未运行。如果我手动启动它,它可以工作:
> sudo /etc/init.d/redis-server start
.
,我得到了相同的输出,只有此次过程停留运行。
在/var/log/redis/redis.log
处查看日志,文件为空。
任何我做错了什么的想法?我启动这样的其他服务(Nginx,Unicorn,MySQL等),那些正在运行正常。
解决方案
我相信一旦SSH连接终止,Redis进程就会结束。
尝试将 nohup 添加到您的脚本:
run "#{sudo} nohup /etc/init.d/redis-server #{cmd}"
. 不隶属于 StackOverflow