Foreman 立即终止

问题描述 投票:0回答:5

我最近在不同的计算机上安装了 OSX Ubuntu。然后我尝试为两个操作系统安装 redis 和 foreman。这两个错误都没有抛出任何标志,并且似乎执行成功。但是,每当我用

foreman start
启动 foreman 时,我都会在两台计算机上遇到以下问题:

23:48:35 web.1    | started with pid 1316
23:48:35 redis.1  | started with pid 1317
23:48:35 worker.1 | started with pid 1318
23:48:35 redis.1  | [1317] 11 Jun 23:48:35.180 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
23:48:35 redis.1  | [1317] 11 Jun 23:48:35.181 * Increased maximum number of open files to 10032 (it was originally set to 256).
23:48:35 redis.1  | [1317] 11 Jun 23:48:35.181 # Creating Server TCP listening socket *:6379: bind: Address already in use
23:48:35 redis.1  | exited with code 1
23:48:35 system   | sending SIGTERM to all processes
23:48:35 worker.1 | terminated by SIGTERM
23:48:35 web.1    | terminated by SIGTERM

出于某种原因,这对我来说似乎是一个路径问题,因为似乎 Redis 或 Foreman 找不到它们成功执行所需的文件,但我不太确定。

在 OSX 上我使用

gem install foreman
Brew install Redis
.

在 Ubuntu 上我使用了以下命令:

Redis:

$ cd ~
$ wget http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make
$ make test 

工头:

$ gem install foreman

我在 OSX 上的路径如下:

/Users/c/.rvm/gems/ruby-2.1.0/bin:/Users/c/.rvm/gems/ruby-2.1.0@global/bin:/Users/c/.rvm/rubies/ruby -2.1.0/bin:/Users/c/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

在 Ubuntu 上,我的路径是:

/usr/local/bin:/usr/lib/postgresql:/usr/lib/postgresql/9.3:/usr/lib/postgresql/9.3/lib:/usr/lib/postgresql/9.3/bin:/usr/share /doc:/usr/share/doc/postgresql-9.3:/usr/share/postgresql:/usr/share/postgresql/9.3:/usr/share/postgresql/9.3/man:$PATH

Redis-server 似乎执行成功一次,然后失败并显示消息:

[1457] 12 Jun 00:02:48.481 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
[1457] 12 Jun 00:02:48.482 * Increased maximum number of open files to 10032 (it was originally set to 256).
[1457] 12 Jun 00:02:48.483 # Creating Server TCP listening socket *:6379: bind: Address already in use

尝试

$ redis-server stop
返回:

[1504] 12 Jun 00:05:56.173 # Fatal error, can't open config file 'stop'

我需要帮助弄清楚如何让 Foreman 和 Redis 协同工作,以便我可以在浏览器中通过 127.0.0.1 查看本地文件

编辑

Redis 确实启动了,但当我导航到 localhost:6379 时没有任何反应。我也尝试了寻找进程的建议。发现了

c                751   0.0  0.0  2432768    596 s005  R+    2:03PM   0:00.00 grep redis
c                616   0.0  0.0  2469952   1652 s004  S+    2:01PM   0:00.05 redis-server *:6379

尝试

kill
该过程会导致

kill:用法:kill [-s sigspec | -n 符号 | -sigspec] pid |工作规范 ...或kill -l [sigspec]

ruby-on-rails macos path redis foreman
5个回答
18
投票

尝试使用以下命令启动 Redis 服务器:

redis-server <path to your config file>

另外,检查是否有 Redis 服务器实例已在运行

ps aux | grep redis 

然后如果找到进程:

kill <process id>

重新启动您的 Redis 服务器。


1
投票

这个衬垫将杀死任何现有的 redis 服务器,然后启动一个新的 redis 服务器。当在 Foreman 中运行时,它不会发送导致 Foreman 退出的 SIGTERM,而是发送 SIGINT 让 Foreman 继续。

(ps aux | grep 6379 | grep redis | awk '{ print $2 }' | xargs kill -s SIGINT) && redis-server

在 Procfile.dev 中:

redis: (ps aux | grep 6379 | grep redis | awk '{ print $2 }' | xargs kill -s SIGINT) && redis-server


0
投票
  1. 使用终端列出正在运行的 Redis 服务器 命令:ps aux | grep redis
  2. 在列表中记下要终止的服务器的“pid”编号 示例 pid:5379
  3. 使用命令:kill 5379

0
投票

试试这个:

$ sudo systemctl stop redis-server

现在运行:

foreman start


0
投票

就我而言,我的 Procfile.dev 中有重复:

web: env RUBY_DEBUG_OPEN=true bin/rails server
css: yarn watch:css
vite: bin/vite dev
web: bin/rails s

我删除了最后一行,解决了它。

© www.soinside.com 2019 - 2024. All rights reserved.