redis-server
を入力して新しいサーバーを起動しようとすると、次のように迎えられるので、redis-server
インスタンスを実行しているようです。
Opening port: bind: Address already in use
このサーバーを停止して新しいサーバーを起動する方法がわかりません。
CLIで入力するときにredis-server
に追加できるコマンドはありますか?
私のOSはUbuntu 10.04です。
ノードインスタンスに接続して shutdown コマンドを使用するか、またはubuntuを使用している場合はinit.dを使用してredisサーバーを再起動します。
/etc/init.d/redis-server restart
または停止または起動します。
/etc/init.d/redis-server stop
/etc/init.d/redis-server start
Macの場合
redis-cli shutdown
よりクリーンで信頼性の高い方法は、redis-cliに入ってshutdown
とタイプすることです。
Redis-cliでhelp @server
と入力すると、これがリストの一番下近くに表示されます。
SHUTDOWN - summary:データセットを同期的にディスクに保存してからサーバーをシャットダウンしました。
端末でredis-serverインスタンスを実行している場合は、次のようになります。
User requested shutdown...
[6716] 02 Aug 15:48:44 * Saving the final RDB snapshot before exiting.
[6716] 02 Aug 15:48:44 * DB saved on disk
[6716] 02 Aug 15:48:44 # Redis is now ready to exit, bye bye...
redis-cli shutdown
が最も効果的です。受け入れられた答えは私のために働かない(OSX Lion)。ありがとう、@ JeseBuesking。
Osxのために私はredisの起動と停止のために以下のエイリアスを作成しました(redisはhomebrewと共にインストールされます):
alias redstart='redis-server /usr/local/etc/redis/6379.conf'
alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'
これは地域の発展にとって私にとって非常に役に立ちました。
CLIにSHUTDOWN
と入力します。
または
メモリ内のデータに関心がない場合は、SHUTDOWN NOSAVE
と入力してサーバーを強制的にシャットダウンすることもできます。
killall redis-server
を試してください。 ps aux
を使ってあなたのサーバーの名前とpidを見つけ、それをkill -9 here_pid_number
で殺すこともできます。
オプション1:私の場合は、redisインストールディレクトリに行き、src
に移動します
/opt/redis3/src/redis-cli -p 6379 shutdown
6379がデフォルトのポートです。
オプション2:redisプロセスを見つけてkillする
ps aux | grep redis-server
t6b3fg 22292 0.0 0.0 106360 1588 pts/0 S+ 01:19 0:00 /bin/sh /sbin/service redis start
t6b3fg 22299 0.0 0.0 11340 1200 pts/0 S+ 01:19 0:00 /bin/sh /etc/init.d/redis start
そして殺害を開始します。
kill -9 22292
kill -9 22299
Centos 6.7、x86_64を使用しています
それが役に立てば幸い
別の方法があります:
ps -ef | grep -i 'redis-server'
kill -9 PID owned by redis
* NIXとOSXで動作します
rootユーザーで端末のredisサーバータイプを停止します
Sudo service redis-server stop
メッセージはredis-serverを停止した後に表示されます
Stopping redis-server: redis-server.
redis-serverタイプを起動したい場合
Sudo service redis-server start
サーバタイプを再起動したい場合
Sudo service redis-server restart
MacOSX - 動作しました:)
ステップ1:以前に実行していたRedisサーバーを見つける
ps auxx | grep redis-server
ステップ2:PID(Process ID)を見つけて特定のプロセスを終了させる - Redis Sever
kill -9 PID
実行しているポートがわかっている場合(デフォルトでは6379)、belowコマンドを使用してそのポートを使用しているプロセスのPIDを取得し、同じPIDに対してkillコマンドを実行できます。
Sudo lsof -i : <port> | awk '{print $2}'
上記のコマンドはあなたにpidを与えるでしょう。
<pid>
を殺します。
これはあなたのサーバーをシャットダウンするでしょう。
通常、この問題は私のコンピュータを不規則にシャットダウンした後(あるいは実行中のままにした後)に発生します。
9/10倍の修正が可能です。
$ ps aux | grep redis
-> MyUser 2976 0.0 0.0 2459704 320 ?? S Wed01PM 0:29.94 redis-server *:6379
$ kill 2976
$ redis-server
行ってもいい。
systemd、ubuntu 16.04:
$ Sudo systemctl is-active redis-server
active
$ Sudo systemctl is-enabled redis-server
enabled
$ Sudo systemctl disable redis-server
Synchronizing state of redis-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable redis-server
Removed /etc/systemd/system/redis.service.
$ Sudo systemctl stop redis-server
私の場合は、
/etc/init.d/redismaster stop
/etc/init.d/redismaster start
あなたのサービス名が何であるかを知るために、あなたは実行することができます:
Sudo updatedb
locate redis
そしてそれはあなたのシステム内のすべてのRedisファイルをあなたに示します。
別の方法があります:
brew services stop redis
以下はMACで私のために働いた
ps aux | grep 'redis-server' | awk '{print $2}' | xargs Sudo kill -9
私は特にredisについては知りませんが、一般的にサーバーについては:
どんなOSやディストリビューション?多くの場合、pidファイルで既存のpidを検索できるようになるstopまたは/etc/init.d/...コマンドがあります。
Sudo netstat -nlpt
Linuxのオプション。他のnetstatの種類は異なるでしょう)を使って、既にどのプロセスがそのポートにバインドされているのかを調べて、停止するように合図することができます。シャットダウンするシグナルや方法が他にない場合を除き、実行中のサーバーでは_(notkill -9
を使用します)。
以下のコマンドは Ubuntuサーバーで私のために働きます
$ service /etc/init.d/redis_6379 stop
$ service /etc/init.d/redis_6379 start
$ service /etc/init.d/redis_6379 restart
MacOSXでは、
これは私のために働いたものです
/etc/init.d/redis restart
/etc/init.d/redis stop
/etc/init.d/redis start
港湾労働者のコンテナでredisを実行している場合、現在の答えはどれも役に立ちません。あなたはredisコンテナを止めなければなりません。そうでなければ、redisプロセスは再生成し続けます。
$ docker ps
CONTAINER ID IMAGE PORTS
e1c008ab04a2 bitnami/redis:4.0.8-r0 0.0.0.0:6379->6379/tcp
$ docker stop e1c008ab04a2
e1c008ab04a2
どのポート(デフォルト:6379)であなたのRedisサーバーが動いているか知っているなら、あなたはオプション1で行くことができます、またはあなたはあなたのRedisプロセスをチェックしてオプション2
オプション1:
portでプロセスを強制終了します。
check : Sudo lsof -t -i:6379
kill : Sudo kill `Sudo lsof -t -i:6379`
オプション2:
以前に実行していたRedis Serverを見つけます。
ps auxx | grep redis-server
PID(プロセスID)を見つけて特定のプロセスを終了させる - Redis Sever
kill -9 PID
今すぐあなたのredisサーバーを起動してください
redis-server /path/to/redis.conf
Redis-server.pidが実際に作成されているかどうかは、redisコマンドが機能していないかどうかを確認するためのものです。このファイルがある場所の場所を指定します
/etc/systemd/system/redis.service
そしてそれはこのように見えるセクションを持つべきです:
[Service]
Type=forking
User=redis
Group=redis
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
PIDFile=/run/redis/redis-server.pid
TimeoutStopSec=0
Restart=always
PIDFileディレクトリ(私の場合は '/ run/redis')の場所と権限を確認してください。 deployとしてログインしているサービスを再起動しようとしましたが、ディレクトリのアクセス権が
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
もしあなたがLinuxのパーミッションについて復習が必要なら、 これをチェックしてください 。しかし問題は、上記のパーミッションがr-xであるデプロイユーザーとして再起動を実行していて、ユーザーがPIDFileディレクトリに書き込めないことでした。
気がついたら、rootを使ってログインし、redis(service redis restart
)にrestartコマンドを再実行すればすべてうまくいきました。それは頭痛の種でしたが、うまくいけばこれで誰かが少し時間を節約できます。