web-dev-qa-db-ja.com

どうすればredis-serverを停止できますか?

redis-serverを入力して新しいサーバーを起動しようとすると、次のように迎えられるので、redis-serverインスタンスを実行しているようです。

Opening port: bind: Address already in use

このサーバーを停止して新しいサーバーを起動する方法がわかりません。

CLIで入力するときにredis-serverに追加できるコマンドはありますか?

私のOSはUbuntu 10.04です。

269
Qcom

ノードインスタンスに接続して 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
427
yojimbo87

よりクリーンで信頼性の高い方法は、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...
187
Kevin McTigue

redis-cli shutdownが最も効果的です。受け入れられた答えは私のために働かない(OSX Lion)。ありがとう、@ JeseBuesking。

130
SimplGy

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'

これは地域の発展にとって私にとって非常に役に立ちました。

25
Ray Hunter

CLIにSHUTDOWNと入力します。

または

メモリ内のデータに関心がない場合は、SHUTDOWN NOSAVEと入力してサーバーを強制的にシャットダウンすることもできます。

23
user1651082

killall redis-serverを試してください。 ps auxを使ってあなたのサーバーの名前とpidを見つけ、それをkill -9 here_pid_numberで殺すこともできます。

16
ciembor

オプション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を使用しています

それが役に立てば幸い

11
App Work

別の方法があります:

ps -ef | grep -i 'redis-server'
kill -9 PID owned by redis

* NIXとOSXで動作します

10
smace

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
7
denny

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>を殺します。

これはあなたのサーバーをシャットダウンするでしょう。

5
cptjack

通常、この問題は私のコンピュータを不規則にシャットダウンした後(あるいは実行中のままにした後)に発生します。

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

行ってもいい。

4

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
4
Adobe

私の場合は、

/etc/init.d/redismaster stop
/etc/init.d/redismaster start

あなたのサービス名が何であるかを知るために、あなたは実行することができます:

Sudo updatedb
locate redis

そしてそれはあなたのシステム内のすべてのRedisファイルをあなたに示します。

3
joan16v

別の方法があります:

brew services stop redis
2
Ihor Pavlyk

以下はMACで私のために働いた

 ps aux | grep 'redis-server' | awk '{print $2}' | xargs Sudo kill -9
2
Mahesh Hegde

私は特にredisについては知りませんが、一般的にサーバーについては:

どんなOSやディストリビューション?多くの場合、pidファイルで既存のpidを検索できるようになるstopまたは/etc/init.d/...コマンドがあります。

Sudo netstat -nlptLinuxのオプション。他のnetstatの種類は異なるでしょう)を使って、既にどのプロセスがそのポートにバインドされているのかを調べて、停止するように合図することができます。シャットダウンするシグナルや方法が他にない場合を除き、実行中のサーバーでは_(notkill -9を使用します)。

1
ysth

以下のコマンドは Ubuntuサーバーで私のために働きます

$ service /etc/init.d/redis_6379 stop
$ service /etc/init.d/redis_6379 start
$ service /etc/init.d/redis_6379 restart
1
efkan

MacOSXでは、

これは私のために働いたものです

/etc/init.d/redis restart

/etc/init.d/redis stop

/etc/init.d/redis start
0
tsuz

港湾労働者のコンテナで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
0
Wladek Surala

どのポート(デフォルト: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 
0

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コマンドを再実行すればすべてうまくいきました。それは頭痛の種でしたが、うまくいけばこれで誰かが少し時間を節約できます。

0