Foreman terminates immediately

10,692

Solution 1

Try starting Redis server with the following command :

redis-server <path to your config file>

Also, check if there's an instance of Redis server already running by

ps aux | grep redis 

and then if process is found :

kill <process id>

Restart your redis server.

Solution 2

This one liner will kill any existing redis-servers and then start a new redis-server. When run in Foreman it doesn't send a SIGTERM which causes Foreman to quit, sending a SIGINT lets Foreman continue.

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

In Procfile.dev:

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

Share:
10,692
user3172050
Author by

user3172050

Updated on June 04, 2022

Comments

  • user3172050
    user3172050 about 2 years

    I recently installed OSX and Ubuntu on different computers. I then attempted to install redis and foreman for both OS's. Both errors threw no flags, and seemed to execute successfully. However, whenever I go to start foreman with foreman start, I run into the below issue on both computers:

    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
    

    For some reason, it seems like a path issue to me because it seems like Redis or Foreman cannot find the files they need to use to successfully execute, but I'm not exactly sure.

    On OSX I used gem install foreman and Brew install Redis .

    On Ubuntu I used the following:

    Redis:

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

    Foreman:

    $ gem install foreman

    My PATH on OSX is as follows:

    /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

    On Ubuntu, my PATH is:

    /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 does seem to execute successfully once, and then it fails with the message:

    [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
    

    Trying $ redis-server stop returns:

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

    I need help figuring out how to get Foreman and Redis working together so that I can view my local files in the browser at 127.0.0.1

    EDIT

    Redis does start, but nothing happens when I navigate to localhost:6379. I also tried the suggestion of finding processes. It found

    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
    

    Trying to kill the process results in

    kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]