Я настраиваю сервер memcached в производстве и хотел бы иметь возможность переключаться между различными размерами памяти, просто изменяя символическую ссылку с одной конфигурации на другую, однако я не хочу копировать и вставлять каждую конфигурацию в любую другую конфигурацию, это возможно ли иметь главный конфиг с несколькими дочерними конфигами?
Пример:
# master config
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="128"
OPTIONS=""
# Name: memcached_256
# child config for cache server of 256
# include options from master config
CACHESIZE="256"
# Name: memcached_512
# child config for cache server of 512
# include options from master config
CACHESIZE="512"
Пример списка каталогов:
ls /etc/sysconfig
memcached -> /path/to/my/version/controlled/configs/memcached_256
И если мне когда-нибудь понадобится обновление, я могу просто изменить указанную выше символическую ссылку на:
memcached -> /path/to/my/version/controlled/configs/memcached_512
Затем, после изменения символической ссылки, просто перезапустите службу. Или, если есть лучший способ выполнить эту функцию, это тоже будет оценено.
Похоже, что эти файлы получены из сценария инициализации, который запускает memcached, а не читаются самим memcached. Поэтому вы, вероятно, могли бы получить основную конфигурацию из дочерних конфигураций, например:
/etc/sysconf/memcached_master
:
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="128"
OPTIONS=""
/etc/sysconf/memcached_256
:
. /etc/sysconfig/memcached_master
CACHESIZE="256"
/etc/sysconf/memcached_512
:
. /etc/sysconfig/memcached_master
CACHESIZE="512"
А затем символическая ссылка /etc/sysconfig/memcached
в дочернюю конфигурацию, которую вы хотите использовать.