Я использую Ubuntu 15.10 и уже установил memcached в моей системе. Мое текущее требование проекта - запустить два экземпляра memcached на одном сервере, но с разными портами. Я начинаю с файла /etc/memcached.conf
и проверяю, есть ли у него возможность указать номер порта. Итак, я подумал, что мне просто нужно иметь два одинаковых файла conf с разными номерами портов.
Затем я проверяю скрипт запуска memcached /etc/init.d/memcached
, чтобы я мог указать расположение файлов conf. Но, к моему удивлению, я вижу, что в сценарии запуска уже есть возможность запуска нескольких экземпляров memcached.
# Usage:
# cp /etc/memcached.conf /etc/memcached_server1.conf
# cp /etc/memcached.conf /etc/memcached_server2.conf
# start all instances:
# /etc/init.d/memcached start
# start one instance:
# /etc/init.d/memcached start server1
# stop all instances:
# /etc/init.d/memcached stop
# stop one instance:
# /etc/init.d/memcached stop server1
# There is no "status" command.
FILES=(/etc/memcached_*.conf)
# check for alternative config schema
if [ -r "${FILES[0]}" ]; then
Я попробовал описанный выше вариант, но он по-прежнему продолжает запускать один экземпляр вместо запуска двух экземпляров. Я что-то здесь упускаю?
Наличие той же проблемы в Debian Jessie. Сообщит, если я найду решение.
Тем временем можно вручную запустить сервисы для достижения желаемого результата.
Пример:
sudo /etc/init.d/memcached stop
memcached -d -m 64 -l 127.0.0.1 -p 11211 -u memcache
memcached -d -m 64 -l 127.0.0.2 -p 11211 -u memcache
Обновление 1 : Ага! В Debian существует ошибка: https://bugs.debian.org/cgi-bin/bugreport.cgi? bug=784357. Это могло также влиять на Ubuntu?
Поскольку Robert Bihlmeyer сказал относительно https://bugs.debian.org/cgi-bin/bugreport.cgi? bug=784357#13, простое решение состоит в том, чтобы удалить /lib/systemd/system/memcached.service
.
Без этого файла, systemd возвращается /etc/init.d/memcached
, который поддерживает несколько конфигураций.
я подтвердил эту проблему на Ubuntu 16.04 и решил ее этот путь.
Это может легко быть сделано путем создания файла/lib/systemd/system/memcached. сервис с в основном тем же содержанием как memcached.service файл с несколькими небольшими изменениями:
[Unit]
Description=memcached daemon for %i
After=network.target
[Service]
ExecStart=/usr/share/memcached/scripts/systemd-memcached-wrapper /etc/memcached_%i.conf
[Install]
WantedBy=multi-user.target
можно затем использовать systemctl для управления каждым сервисом индивидуально:
systemctl enable memcached@server1
systemctl start memcached@server2
Выполните следовать команду для конфигурирования нескольких экземпляров Memcached на сервере человечности 16.04
, энергия/etc/memcached_11212.conf
Note: change the port from 11211 to 11212 or another port which you want.
sudo cp/lib/systemd/system/memcached.service/lib/systemd/system/memcached2. service
sudo/lib/systemd/system/memcached2.service
Note: change /etc/memcached.conf to /etc/memcached_11212.conf
sudo systemctl энергии sudo cp/etc/memcached.conf/etc/memcached_11212.conf
sudo запускает состояние memcached2.servicesudo systemctl memcached2.service
sudo netstat-tulpan | grep memcached