If you’re developing on the mac using redis and want it to start automatically on boot, you’ll want to leverage the OSX launchd system to run it as a User Daemon. A User Daemon is a non-gui program that runs in the background as part of the system. It isn’t associated with your user account. If you only want redis to launch when a particular user logs in, you’ll want to make a User Agent instead.
From the command line, create a plist file as root in the /Library/LaunchDaemons directory with your favorite text editor:
sudo vim /Library/LaunchDaemons/io.redis.redis-server.plist
Paste in the following contents and modify it to point it to wherever you’ve got redis-server installed and optionally pass the location of a config file to it (delete the redis.conf line if you’re not using one):
Label
io.redis.redis-server
ProgramArguments
/usr/local/bin/redis-server
/usr/local/etc/redis.conf
RunAtLoad
Make sure that you actually have a redis.conf file at the location above. If you’ve installed it with homebrew that should be the correct location.
You’ll then need to load the file (one time) into launchd with launchctl:
sudo launchctl load /Library/LaunchDaemons/io.redis.redis-server.plist
Redis will now automatically be started after every boot. You can manually start it without rebooting with:
sudo launchctl start io.redis.redis-server
You can also shut down the server with
sudo launchctl stop io.redis.redis-server
Or you could add these aliases to your bash/zsh rc file:
alias redisstart='sudo launchctl start io.redis.redis-server'
alias redisstop='sudo launchctl stop io.redis.redis-server'
If you’re having some sort of error (or just want to watch the logs), you can just fire up Console.app to watch the redis logs to see what’s going on.
[...] as a User Daemon. A User Daemon is a non-gui program that runs in the background as part of the… [full post] tednaleid Ted Naleid command lineosxredis 0 0 0 0 0 [...]
If your redis.conf has relative paths you can also add the following to your io.redis.redis-server.plist.
Did that work for you Shaun? I had problems starting up the server when I tried to use the WorkingDirectory key, so I switched paths so they weren’t relative in my redis.conf.
If you install redis through Homebrew, they plist file is located in the Cellar path in /usr/local/Cellar/redis.
A third alias could be useful to see the redis status:
alias redisstatus=’sudo launchctl list | grep redis’
(copied from Luis de La Rosa, http://loganleger.com/redis-resque-mac-os)
@Thiago thanks! I’ve actually been using something similar, but forgot to update the blog post with it. I’ve been using the redis “ping” command:
alias redisstatus='redis-cli ping'Which will respond “PONG” if redis is up.
thank you, I was compiled redis by myself,not found redis.conf (delete the redis.conf line if you’re not using one) ,It’s work.