redisを立ち上げたままターミナルを閉じてしまった時の対処法

はじめに

redisにかかわらず、立ち上げたままターミナルを閉じてしまうことがあるかと思います。

今回は、そんな時の対処法を紹介します。

手順

まずは、他で立ち上がっている際にredisを立ち上げてみます。

$ redis-server
60230:C 26 Oct 2021 21:22:26.169 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
60230:C 26 Oct 2021 21:22:26.169 # Redis version=6.2.5, bits=64, commit=00000000, modified=0, pid=60230, just started
60230:C 26 Oct 2021 21:22:26.170 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
60230:M 26 Oct 2021 21:22:26.170 * Increased maximum number of open files to 10032 (it was originally set to 256).
60230:M 26 Oct 2021 21:22:26.170 * monotonic clock: POSIX clock_gettime
60230:M 26 Oct 2021 21:22:26.171 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
60230:M 26 Oct 2021 21:22:26.171 # Failed listening on port 6379 (TCP), aborting.

一番下の行に、ポート番号6379が表示されているので、それを指定して以下のコマンドを実行します。

$ lsof -i:6379

すると、以下のように実行中のポート番号6379のプロセスを表示されます。

COMMAND     PID          USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ruby      58478 yoshitakakato   18u  IPv6 0x2ef7cd263c896b07      0t0  TCP localhost:53627->localhost:6379 (ESTABLISHED)
ruby      58478 yoshitakakato   22u  IPv6 0x2ef7cd2638e1cae7      0t0  TCP localhost:64371->localhost:6379 (ESTABLISHED)
ruby      58478 yoshitakakato   23u  IPv6 0x2ef7cd2638e1b167      0t0  TCP localhost:64372->localhost:6379 (ESTABLISHED)
ruby      58491 yoshitakakato   13u  IPv6 0x2ef7cd262bdeab07      0t0  TCP localhost:64217->localhost:6379 (ESTABLISHED)
redis-ser 79221 yoshitakakato    6u  IPv4 0x2ef7cd263ca32fc7      0t0  TCP *:6379 (LISTEN)
redis-ser 79221 yoshitakakato    7u  IPv6 0x2ef7cd263cabb7c7      0t0  TCP *:6379 (LISTEN)
redis-ser 79221 yoshitakakato    8u  IPv6 0x2ef7cd262bde97e7      0t0  TCP localhost:6379->localhost:64217 (ESTABLISHED)
redis-ser 79221 yoshitakakato    9u  IPv6 0x2ef7cd2638e1a4a7      0t0  TCP localhost:6379->localhost:64371 (ESTABLISHED)
redis-ser 79221 yoshitakakato   10u  IPv6 0x2ef7cd263cabd147      0t0  TCP localhost:6379->localhost:64372 (ESTABLISHED)
redis-ser 79221 yoshitakakato   11u  IPv6 0x2ef7cd263c898487      0t0  TCP localhost:6379->localhost:53627 (ESTABLISHED)

今回は実行中のredisのプロセス番号(PID)79221を以下のコマンドで指定して、プロセスを終了させます。

$ kill  -9 79221

-9は強制終了してくれるシグナルIDで、-KILLというシグナル名でもOK。

実行したら、もう一度以下のコマンドで見てみましょう。

$ lsof -i:6379
COMMAND   PID          USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ruby    58478 yoshitakakato   18u  IPv6 0x2ef7cd263c896b07      0t0  TCP localhost:53627->localhost:6379 (CLOSE_WAIT)
ruby    58478 yoshitakakato   22u  IPv6 0x2ef7cd2638e1cae7      0t0  TCP localhost:64371->localhost:6379 (CLOSE_WAIT)
ruby    58478 yoshitakakato   23u  IPv6 0x2ef7cd2638e1b167      0t0  TCP localhost:64372->localhost:6379 (CLOSE_WAIT)

これで、先程まであったredisが消えているので止まったことがわかります。

タイトルとURLをコピーしました