Назад | Перейти на главную страницу

redis-server2 is start-stop-daemon: warning: эта система не может отслеживать имена процессов длиннее 15 символов

Итак, мне нужно было запустить 2 экземпляра Redis на одном сервере. Мой сервер - это Ubuntu 14.04.

Итак, я последовал это руководство, но не строго. Я имею в виду, что вместо изменения сценариев инициализации redis (которые поступают из пакетов Ubuntu) я решил создать новые сценарии для второго экземпляра и оставить исходные сценарии нетронутыми для первого экземпляра.

Итак, я сделал следующее:

1) Создайте новый скрипт для нового экземпляра (он будет работать в порту 6380 вместо порта 6379 по умолчанию):

sudo cp /etc/init.d/redis-server /etc/init.d/redis-server6380

2) Измените /etc/init.d/redis-server6380, чтобы он был немного другим. Вместо того:

DAEMON=/usr/bin/redis-server
DAEMON_ARGS=/etc/redis/redis.conf
NAME=redis-server
DESC=redis-server

RUNDIR=/var/run/redis
PIDFILE=$RUNDIR/redis-server.pid

В нем будут:

NAME=`basename ${0}`
DAEMON=/usr/bin/redis-server
DAEMON_ARGS=/etc/redis/${NAME}.conf
DESC=${NAME}

RUNDIR=/var/run/redis
PIDFILE=$RUNDIR/${NAME}.pid

3) Затем скопируйте конфигурацию:

cp /etc/redis/redis-server.conf /etc/redis/redis-server6380.conf

Отредактируйте новый файл redis-server6380.conf, чтобы он был из:

pidfile /var/run/redis/redis-server.pid
port 6379
logfile /var/log/redis/redis-server.log
dir /var/lib/redis

Кому:

pidfile /var/run/redis/redis-server6380.pid
port 6380
logfile /var/log/redis/redis-server6380.log
dir /var/lib/redis6380

4) Затем создайте рабочий каталог:

sudo mkdir /var/lib/redis6380 && sudo chown redis.redis /var/lib/redis6380

Небольшая проблема, с которой я столкнулся сейчас, заключается в том, что довольно сложно проверить, запущены ли экземпляры.

Раньше, я думаю, я мог просто запустить:

service redis-server status

И узнайте, запущен ли Redis.

Теперь, если я это сделаю, я получу:

$ service redis-server status
redis-server is not running

Даже когда запущен первый экземпляр! И для 2-го экземпляра я получаю:

$ service redis-server6380 status
redis-server6380 is start-stop-daemon: warning: this system is not able to track process
names longer than 15 characters, please use --exec instead of --name.
not running

НО ПОЧЕМУ? Я не понимаю ...

То же самое произойдет, если я использую /etc/init.d/redis-server* вместо того service. Теперь я знаю хакерский способ проверить, действительно ли они работают:

$ ps aux | grep redis
andrew     365  0.0  0.1  10468  2236 pts/0    S+   07:17   0:00 grep --color=auto redis
redis    22521  0.0  1.3  50860 23132 ?        Ssl  Feb19   4:38 /usr/bin/redis-server 0.0.0.0:6379
redis    52953  0.0  0.5  38572  8860 ?        Ssl  Feb25   0:23 /usr/bin/redis-server 0.0.0.0:6380

Но я бы не хотел прибегать к этому :(