Linux
在 redhat 6.1 上將 redis 作為服務啟動失敗
我已經在 redhat 6.1 linux 機器上安裝了 redis。
我使用了命令
make make install cd utils ./install_server
我使用了所有預設設置,因此我可以使用
redis-server
命令啟動伺服器。現在我想開始是作為一個服務,這應該是可行的serviece redis_6379 start
。但是,我得到以下輸出:
[root@localhost ssl]# sudo service redis_6379 start exists, process is already running or crashed
在我看來,系統沒有讀取
$PIDFILE
變數,根據其中的腳本,該變數/etc/init.d/redis_6379
是從/etc/redis/6379.conf
. 這兩個文件都按照預設配置。任何想法為什麼會發生這種情況以及如何解決它?
下面是中的腳本
/etc/init.d/redis_6379
#!/bin/sh\n #Configurations injected by install_server below....\n\n EXEC=/usr/local/bin/redis-server\n CLIEXEC=/usr/local/bin/redis-cli\n PIDFILE=/var/run/redis_6379.pid\n CONF="/etc/redis/6379.conf"\n\n REDISPORT="6379"\n\n ###############\n\n 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
在此先感謝您的幫助。
原來問題出在票據
/etc/init.d/redis_6379
上。我不知道是什麼原因(也許解決了一些問題,因為這是來自 redis 2.6.7,但第一行格式錯誤。一旦我把它變成
#!/bin/sh #Configurations injected by install_server below.... EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_6379.pid CONF="/etc/redis/6379.conf" REDISPORT="6379" ###############
整個事情開始起作用了。
FWIW - 如果您使用此處提供的初始化腳本http://download.redis.io/redis-stable/utils/redis_init_script您必須在初始化腳本中添加一個
status
andstatus_q
選項,以便在您使用時 redis 正確顯示service --status-all
否則服務將顯示“請使用啟動或停止作為第一個參數”