web-dev-qa-db-ja.com

Homebrewを使用してOS XでサービスとしてRedisを開始する

brew install redisを使用してRedisをインストールし、次の方法でサービスとして追加しようとしました。

ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

これらはエラーを生成しませんでした。ただし、Redisが起動しないようです。 redis-cli pingを実行すると、Could not connect to Redis at 127.0.0.1:6379: Connection refusedが返されます。

別のターミナルウィンドウでredis-serverを手動で実行できますが、ログイン時にRedisを自動起動したいのですが。

また、Redisをアンインストールして再インストールし、brew servicesを使用してサービスを管理しようとしました(brew servicesは、MongoDBとCassandraのインストールでうまく動作します)。

他の人がこの問題を抱えているのを見たことがないので、診断方法がわかりません。誰かアドバイスがあれば大歓迎です!

5
John Galt

最初にサービスをタップしたことを確認してください:

brew tap homebrew/services

次に試してください:

brew services [start/stop/restart] redis

また、次のコマンドでredisを開始および停止することもできます。

Sudo launchctl start io.redis.redis-server

Sudo launchctl stop io.redis.redis-server

作業を簡単にするために、これらのコマンドのエイリアスを.bash_profileに追加できます。

alias redisstart='Sudo launchctl start io.redis.redis-server'
alias redisstop='Sudo launchctl stop io.redis.redis-server'

次に、redisstartredisstopを入力するだけで、redisを開始および停止できます。

これに対処できる別の方法は、バックグラウンドサービスとしてredisを追加することです。

Sudo vim /Library/LaunchDaemons/io.redis.redis-server.plist

次に、以下をコピーしてファイルに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>io.redis.redis-server</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/redis-server</string>
        <string>/usr/local/etc/redis.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
6
selfagency
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
1
lifecom

以前に手動でredisを起動していたときに、confファイルを編集してredisをデーモン化した可能性があります。それを確認し、daemonizenoに変更して、再試行してくださいbrew services

1
Ian Yang