Install memcached
apt install memcached
Copy the default unit file to /etc/systemd/system/
cp /lib/systemd/system/memcached.service /etc/systemd/system/memcached@.service
Change the new unit file (/etc/systemd/system/memcached@.service) as follows:
[Unit]
Description=memcached daemon (instance %i)
After=network.target
Documentation=man:memcached(1)[Service]
ExecStart=/usr/share/memcached/scripts/systemd-memcached-wrapper /etc/memcached_%i.conf[Install]
WantedBy=multi-user.target
Note the changes in Description and ExecStart (path to config).
Now, create new config files for all the instances you need:
cp /etc/memcached.conf /etc/memcached_moodle-session.conf
cp /etc/memcached.conf /etc/memcached_moodle-appcache.conf
Modify them to use unique port
-p 11211
Reload systemd
systemctl daemon-reload
Stop and disable the old memcached service, then start and enable new ones:
systemctl stop memcached.service
systemctl disable memcached.service
systemctl start memcached@moodle-session.service
systemctl enable memcached@moodle-session.service
systemctl start memcached@moodle-appcache.service
systemctl enable memcached@moodle-appcache.service
This is just what I need… BUT shouldn’t you also update /etc/systemd/system/memcached@.service for the instance-specific pid?
i.e. have this line too:
PIDFile=/var/run/memcached/memcached_%i.pid
This article was written for Debian 9 where pidfile wasn’t used for memcached by default.
For Debian 10 and Ubuntu 18.04 you have to change the PIDFile in the unit file:
“PIDFile=/var/run/memcached/memcached_%i.pid”
and in memcached config.
In my case I’d change the file
“/etc/memcached_moodle-session.conf”
to contain
“-P /var/run/memcached/memcached_moodle-session.pid”
and file
“/etc/memcached_moodle-appcache.conf”
to contain
“-P /var/run/memcached/memcached_moodle-appcache.pid”
Ah yes, I forgot to mention the two .conf files. I had this running unpredictably for years without correctly setting the PIDFile entry but only just worked out what was wrong, so now it’s perfect.
Very useful guide. Thanks.
This was very helpful in allowing me to quickly whip up the necessary changes to a state file for Salt. Thanks for posting this.