I am using supervisor to run my web application on system boot, and one of the application is using redis, so that requires redis start first.
supervisor doesn't have a good way to support start dependency, but systemd support this.
0, Create your redis start config file, e.g.
6379.conf, and make sure the
daemonize is set to
1, Create redis systemd file
[Unit] Description=Redis After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /home/redis/6379.conf ExecStop=kill -s HUP $MAINPID Restart=on-failure [Install] WantedBy=multi-user.target
2, Copy this file to path:
cp redis.service /lib/systemd/system/
3, Start redis with systemd:
systemctl start redis
4, Set start redis on system boot:
systemctl enable redis
If you changed the service file content, you need to reload it:
5, Go to folder
/etc/systemd/system/multi-user.target.wants, and find
supervisor.service, under the
[Unit] section, add line:
All done. Now on the system reboot, redis will start before supervisor, so if you applications are booted by supervisor, now they can safely connect to redis.