Redis not starting with systemctl
To run redis under systemd, you need to set
See the configuration file:
# If you run Redis from upstart or systemd, Redis can interact with your # supervision tree. Options: # supervised no - no supervision interaction # supervised upstart - signal upstart by putting Redis into SIGSTOP mode # supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET # supervised auto - detect upstart or systemd method based on # UPSTART_JOB or NOTIFY_SOCKET environment variables # Note: these supervision methods only signal "process is ready." # They do not enable continuous liveness pings back to your supervisor. supervised no
Needs to be changed to:
You can also pass this on the command line, which overrides the setting in
redis.conf. Red Hat based systems do this. This also allows for running the same redis instance manually or from systemd without changing the config file.
ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd
In addition, you also need to tell systemd that redis will be operating in this mode by setting
Type=notify in the
As I cannot add a comment due to lack of reputation, please take this as a comment to Michael Hampston's answer.
When modifying the
systemd service file, use the command
systemctl edit redis-server to create an override. In the resulting edit window, type the following:
Save and exit then finish the installation
apt install -f.
If you modify the service in
/lib/systemd/system, you'll lose those edits on next update.
See: modify systemd unit file without altering upstream unit file
PS: This question saved me from having to scratch my head for too long as I just encountered the issue.