ruby on rails - Foreman termina inmediatamente
ruby-on-rails macos (3)
Recientemente instalé OSX y Ubuntu en diferentes computadoras. Luego intenté instalar Redis y Foreman para ambos SO. Ambos errores no arrojaron banderas, y parecieron ejecutarse con éxito. Sin embargo, cada vez que voy a iniciar el capataz con el foreman start
, me encuentro con el problema a continuación en ambas computadoras:
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
Por alguna razón, me parece una cuestión de ruta porque parece que Redis o Foreman no pueden encontrar los archivos que necesitan para ejecutar con éxito, pero no estoy del todo seguro.
En OSX, utilicé el gem install foreman
y Brew install Redis
.
En Ubuntu utilicé lo siguiente:
Redis:
$ cd ~
$ wget http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make
$ make test
Capataz:
$ gem install foreman
My PATH en OSX es el siguiente:
/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
En Ubuntu, mi PATH es:
/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 parece ejecutarse correctamente una vez, y luego falla con el mensaje:
[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
Intentando $ redis-server stop
regresa:
[1504] 12 Jun 00:05:56.173 # Fatal error, can''t open config file ''stop''
Necesito ayuda para averiguar cómo hacer que Foreman y Redis trabajen juntos para que pueda ver mis archivos locales en el navegador en 127.0.0.1
EDITAR
Redis comienza, pero no sucede nada cuando navego a localhost: 6379. También probé la sugerencia de encontrar procesos. Encontró
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
Tratando de kill
el proceso resulta en
kill: uso: kill [-s sigspec | -n signum | -sigspec] pid | trabajospec ... o matar -l [sigspec]
- Enumere el servidor redis ejecutándose usando el comando de terminal: ps aux | grep redis
- En la lista, anote el número ''pid'' del servidor que desea terminar Ejemplo pid: 5379
- usar el comando: kill 5379
Intente iniciar el servidor Redis con el siguiente comando:
redis-server <path to your config file>
Además, verifique si hay una instancia del servidor Redis que ya se está ejecutando
ps aux | grep redis
y luego si se encuentra el proceso:
kill <process id>
Reinicia tu servidor redis.
Este trazador de líneas matará a cualquier redis-servers existente y luego comenzará un nuevo redis-server. Cuando se ejecuta en Foreman, no envía un SIGTERM que causa que Foreman se cierre, enviar un SIGINT permite que Foreman continúe.
(ps aux | grep 6379 | grep redis | awk ''{ print $2 }'' | xargs kill -s SIGINT) && redis-server
En Procfile.dev:
redis: (ps aux | grep 6379 | grep redis | awk ''{ print $2 }'' | xargs kill -s SIGINT) && redis-server