Redis basic 4-redis service, redis basic 4-redis
Redis configuration file
The main problem was that redis. pid was not found.
Below is my configuration file
# By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.daemonize yes# When running daemonized, Redis writes a pid file in /var/run/redis.pid by# default. You can specify a custom pid file location here.
Execution permission of var/run
lrwxrwxrwx 1 root root 4 Feb 24 06:57 run -> /run
Then I use sudo touch redis. pid
root@ubuntu:/home/fuhui/redis-2.8.19/utils# pwd/home/fuhui/redis-2.8.19/utilsroot@ubuntu:/home/fuhui/redis-2.8.19/utils# sh redis_init_script stop/var/run/redis_6379.pid does not exist, process is not running
I don't know if it is a permission issue. Modify the o permission.
fuhui@ubuntu:/var/run$ sudo chmod o+wx redis.pid-rw-r--rwx 1 root root 0 Jun 22 08:39 redis.pid
Is the service not restarted?
fuhui@ubuntu:/var/run$ ps -ef | grep 'redis'fuhui 2452 1 0 07:55 ? 00:00:04 redis-2.8.19/src/redis-server *:6379 fuhui 2908 2756 0 08:46 pts/13 00:00:00 grep --color=auto redisfuhui@ubuntu:/var/run$ kill -9 2452fuhui@ubuntu:/var/run$ ps -ef | grep 'redis'fuhui 2910 2756 0 08:46 pts/13 00:00:00 grep --color=auto redis
Try again:
Get it done. redis. pid has the pid Number.
Disable redis Service
root@ubuntu:/home/fuhui/redis-2.8.19/utils# sh redis_init_script stop/var/run/redis_6379.pid does not exist, process is not running
Modify shell files
The following is the original file. What we need to do is simply change the path to the actual storage.
#!/bin/sh## Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.REDISPORT=6379EXEC=/usr/local/bin/redis-serverCLIEXEC=/usr/local/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/etc/redis/${REDISPORT}.conf"case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;;esac
Modify as follows:
root@ubuntu:/home/fuhui/redis-2.8.19/utils# cp redis_init_script ../redis_script
Check whether pid exists In proc.
fuhui@ubuntu:/proc$ cd /proc/fuhui@ubuntu:/proc$ ls -lh | grep 2912dr-xr-xr-x 9 root root 0 Jun 22 08:47 2912
Disable redis service testing
fuhui@ubuntu:~/redis-2.8.19$ src/redis-cli127.0.0.1:6379> shutdownnot connected>
#!/bin/sh## Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.#REDISPORT=6379EXEC=/home/fuhui/redis-2.8.19/src/redis-serverCLIEXEC=/home/fuhui/redis-2.8.19/src/redis-cliPIDFILE=/var/run/redis.pidCONF="/home/fuhui/redis-2.8.19/redis.conf"case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;;esac
Execution result
root@ubuntu:/home/fuhui/redis-2.8.19# sh redis_script startStarting Redis server...
root@ubuntu:/home/fuhui/redis-2.8.19# ps -ef | grep 'redis'root 2972 1 0 09:08 ? 00:00:00 /home/fuhui/redis-2.8.19/src/redis-server *:6379 root 2993 2720 0 09:09 pts/6 00:00:00 grep --color=auto redis
root@ubuntu:/home/fuhui/redis-2.8.19# sh redis_script stopStopping ...Redis stopped
root@ubuntu:/home/fuhui/redis-2.8.19# ps -ef | grep 'redis'root 2998 2720 0 09:10 pts/6 00:00:00 grep --color=auto redis