programing

redis-server를 중지하려면 어떻게 해야 합니까?

javajsp 2023. 9. 21. 20:06

redis-server를 중지하려면 어떻게 해야 합니까?

가 것 요.redis-server하여 새 를 시작하려고 하면 됩니다.redis-server저는 과 같은 .

Opening port: bind: Address already in use

이 서버를 중지하고 새 서버를 시작하는 방법을 알 수 없습니다.

에 ?redis-serverCLI를 입력할 때?

제 OS는 우분투 10.04 입니다.

노드 인스턴스에 연결하고 shutdown 명령을 사용하거나 우분투에 있는 경우 init.d:를 통해 redis 서버를 재시작할 수 있습니다.

/etc/init.d/redis-server restart

또는 중지/시작:

/etc/init.d/redis-server stop
/etc/init.d/redis-server start

온맥

redis-cli shutdown

한 다음 redis-cli 로입니다 을 이 더인 방법입니다.shutdown

에 redis-cli 합니다를 help @server그리고 당신은 목록의 아래쪽에서 이것을 보게 될 것입니다.

SHUTDOWN - summary: 데이터셋을 디스크에 동기적으로 저장한 다음 0.07 이후 서버를 종료합니다.

터미널에서 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).고마워요, @JesseBuesking.

OSX 의 및 를 위해 과 같은 redis(홈브루와 함께 설치):

alias redstart='redis-server /usr/local/etc/redis/6379.conf'
alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'

이것은 지역 개발에 아주 효과적이었습니다!

homebrew-services서비스를 시작, 중지 및 재시작하는 데 사용할 수 있습니다.홈브루의

brew services를 실행할 때 자동으로 설치됩니다.

brew services start|run redis 
brew services stop redis
brew services restart redis

사용하는 경우run), () 시되지 않습니다.start합니다를 합니다.redis서비스를 제공하고 로그인 및 부팅 시 추가합니다.

루트 사용자가 있는 터미널에서 redisserver 유형 중지

sudo service redis-server stop

redis-server를 중지한 후 메시지가 표시됩니다.

Stopping redis-server: redis-server.

redis-server 유형을 시작하려면

sudo service redis-server start

서버 유형을 재시작하려면

sudo service redis-server restart

SHUTDOWN

아니면

당신이 기억에 있는 당신의 데이터에 신경쓰지 않는다면, 당신은 또한 타이프를 칠 수 있습니다.SHUTDOWN NOSAVE서버를 강제로 종료합니다.

.killall redis-server. 사용할 수도 있습니다.ps aux과 pid.kill -9 here_pid_number.

컴퓨터가 재시작되는 동안 자동 시작을 방지하고 도커와 같은 도구를 사용하는 데 매우 유용한 Redis-server를 비활성화할 것을 제안합니다.

1단계: redis-server 중지

sudo service redis-server stop

2단계: redis-server 사용 안 함

sudo systemctl disable redis-server

redis가 필요한 경우 다음과 같이 시작할 수 있습니다.

sudo service redis-server start

하고 1: redisposition 로 합니다.src : ,에는:

/opt/redis3/src/redis-cli -p 6379 shutdown

여기서 6379는 기본 포트입니다.

옵션 2: redis process를 찾아서 처치합니다.

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

저는 센토스 6.7, x86_64를 사용하고 있습니다.

도움이 되기를 바랍니다

다른 방법은 다음과 같습니다.

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

*NIX & OSX에서 작동

redis를 설치하는 동안 설치(예: ubuntu)를 했다면 다음을 수행할 수 있습니다.

redis-cli shutdown

@yojimbo87이 지적한 바와 같이 :)

MacOSX - 작동했습니다 :)

1단계 : 이전에 실행 중인 Redis Server 찾기

ps auxx | grep redis-server

2단계 : 특정 프로세스를 PID(Process ID)를 찾아 킬 - Redis Sever

kill -9 PID

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

일반적으로 이 문제는 컴퓨터를 불규칙한 방식으로 종료한 후(또는 실행 상태를 유지한 후) 발생합니다.포트가 열려있는 상태로 멈춰있는 반면 프로세스는 정지하지만 이전 포트에 계속 묶여있는 것 같습니다.

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

갈 준비 완료.

다른 방법은 다음과 같습니다.

brew services stop redis

실행 중인 포트를 알고 있다면(기본적으로 6379일 경우) 아래 명령을 사용하여 해당 포트를 사용하는 프로세스의 pid를 가져온 다음 동일한 pid에 대해 kill 명령을 실행할 수 있습니다.

sudo lsof -i : <port> | awk '{print $2}'

위의 명령은 당신에게 pid를 줄 것입니다.

죽여라<pid>;

이렇게 하면 서버가 종료됩니다.

도커 컨테이너에서 redis를 실행하는 경우, 현재 답변 중 어떤 것도 도움이 되지 않습니다.당신은 용기를 다시 꺼내지 말아야 합니다.그렇지 않으면 redis process가 계속해서 응답합니다.

$ docker ps
CONTAINER ID        IMAGE                    PORTS                             
e1c008ab04a2        bitnami/redis:4.0.8-r0   0.0.0.0:6379->6379/tcp

$ docker stop e1c008ab04a2
e1c008ab04a2

redis 서버가 실행 중인 포트(기본값: 6379)를 알고 있으면 옵션 1로 이동하거나 redis 프로세스를 확인하고 옵션 2로 삭제할 수 있습니다.

1:
포트에서 프로세스 종료:

check     : sudo lsof -t -i:6379
kill      : sudo kill `sudo lsof -t -i:6379`

2:
이전에 실행 중인 Redis Server 찾기:

 ps auxx | grep redis-server

PID(Process ID)를 찾아 특정 프로세스를 처치합니다(Redis Sever).

kill -9 PID

를 redis 합니다.

redis-server /path/to/redis.conf 

Redis가 스냅을 통해 설치된 경우:

sudo snap stop redis.server

Following은 맥에서 나를 위해 일했습니다.

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

제 경우에는 다음과 같습니다.

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

서비스 이름이 무엇인지 확인하려면 다음을 실행할 수 있습니다.

sudo updatedb
locate redis

시스템에 있는 모든 Redis 파일을 보여줍니다.

redisserver 를를(를) 합니다.

sudo service redis-server stop

를 사용하여 상태를 확인합니다.

sudo service redis-server status

redis에 대해서는 구체적으로 모르지만 일반적인 서버에 대해서는:

어떤 OS나 배포판?pid 파일에서 기존 pid를 조회할 수 있는 stop 또는 /etc/init.d/... 명령이 있는 경우가 많습니다.

를 할 수 .sudo netstat -nlpt(linux 옵션; 다른 netstat 맛은 다양할 것입니다) 및 중지 신호를 보냅니다.사용하지 않습니다.kill -9실행 중인 서버에서 종료할 다른 신호나 방법이 없는 경우.

Ubuntu Server에서 아래 명령이 작동합니다.

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

Redis에 구성 매개 변수가 있습니다.pidfile(예: /etc/redis.conf - rediscourse code 확인), 예를 들어 다음과 같습니다.

# If a pid file is specified, Redis writes it where specified at startup
# and removes it at exit.
#
# When the server runs non daemonized, no pid file is created if none is
# specified in the configuration. When the server is daemonized, the pid file
# is used even if not specified, defaulting to "/var/run/redis.pid".
#
pidfile /var/run/redis.pid

를 사용하여 프로세스 ID(pid)를 검색하는 대신 설정되거나 설정할 수 있는 경우ps + grep다음과 같은 것을 사용할 수 있습니다.

kill $(cat /var/run/redis.pid)

필요한 경우 redisstop 스크립트를 다음과 같이 만들 수 있습니다(적응된 기본 rediscase는 rediscourse 코드의 5.0 init.d 스크립트입니다).

PIDFILE=/var/run/redis.pid
if [ ! -f $PIDFILE ]
then
    echo "$PIDFILE does not exist, process is not running"
else
    PID=$(cat $PIDFILE)
    echo "Stopping ..."
    kill $PID
    while [ -x /proc/${PID} ]
    do
        echo "Waiting for Redis to shutdown ..."
        sleep 1
    done
    echo "Redis stopped"
fi

MacOSX에서는.

이게 제게 효과가 있었던 겁니다.

/etc/init.d/redis restart

/etc/init.d/redis stop

/etc/init.d/redis start

redis 명령이 제대로 작동하지 않는지 확인해야 할 한 가지 사항은 redis-server.pid가 실제로 생성되고 있는지 여부입니다.이 파일이 있는 위치를 지정합니다.

/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').배포로 로그인한 서비스를 다시 시작하려고 했지만 디렉토리 권한이 다음과 같이 나열되었습니다.

drwxrwsr-x  2 redis    redis      40 Jul 20 17:37 redis

Linux 권한에 대한 리프레셔가 필요하다면 이를 확인하십시오.그러나 문제는 위의 권한이 r-x인 배포 사용자로 재시작을 실행하고 있어서 사용자가 PIDFile 디렉토리에 쓸 수 없다는 것이었습니다.

그 사실을 깨닫고 root을 사용하여 로그인한 후 redis에서 restart 명령을 다시 실행했습니다 (service redis restart) 모든 것이 효과가 있었습니다.그것은 골치 아픈 일이었지만 이것이 누군가를 위한 시간을 절약해주기를 바랍니다.

단순한 강제 사용에 의존하지 않고 암호를 사용하여 특정 인스턴스를 정상적으로 종료kill명령어, 사용:

redis-cli -p <port> -a <pass> shutdown

root@machine:~# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       105  0.1  0.0  60552 10772 ?        Ssl  23:27   0:02 redis-server 127.0.0.1:10002
root       111  0.1  0.0  60552 10900 ?        Ssl  23:28   0:02 redis-server 127.0.0.1:10003
root       117  0.1  0.0  60552 10872 ?        Ssl  23:28   0:02 redis-server 127.0.0.1:10004

root@machine:~# redis-cli -p 10002 -a mypassword shutdown
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

root@machine:~# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       111  0.1  0.0  60552 10900 ?        Ssl  23:28   0:02 redis-server 127.0.0.1:10003
root       117  0.1  0.0  60552 10872 ?        Ssl  23:28   0:02 redis-server 127.0.0.1:10004

root@machine:~#

수많은 인스턴스를 가진 경우 마스터 종료를 위해 해당 인스턴스를 모두 루프하기 위한 배치 스크립트를 작성해야 합니다.

redis의 서비스 이름은redis-server, 다음 명령으로 redis를 비활성화하고 중지할 수 있습니다.

sudo systemctl disable redis-server 
sudo systemctl stop redis-server 

다음 코드를 사용해 볼 수 있습니다.

sudo kill -9 $(ps aux | grep 'redis' | awk '{print $2}')

언급URL : https://stackoverflow.com/questions/6910378/how-can-i-stop-redis-server