#!/sbin/openrc-run # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 DAEMON=/usr/sbin/lxd PIDFILE=/run/lxd.pid depend() { need net need lxcfs } start() { ebegin "Starting lxd service" modprobe -f loop > /dev/null 2>&1 # Fix permissions on /var/lib/lxd and make sure it exists. # Create a log directory for lxd with correct permissions. install -d /var/lib/lxd --group lxd --owner root --mode 0775 install -d /var/log/lxd --group lxd --owner root start-stop-daemon --start \ --pidfile ${PIDFILE} \ --exec ${DAEMON} \ --background \ --make-pidfile \ -- \ ${LXD_OPTIONS} eend ${?} } stop() { if [ "${RC_CMD}" = restart ]; then ebegin "Stopping lxd service (but not containers)" # start-stop-daemon sends SIGTERM with a timeout of 5s by default. # SIGTERM indicates to LXD that it will be stopped temporarily. # Instances will keep running. start-stop-daemon --stop --quiet -p "${PIDFILE}" eend ${?} else ebegin "Stopping lxd service and containers, waiting 40s" # SIGPWR indicates to LXD that the host is going down. # LXD will do a clean shutdown of all instances. # After 30s all remaining instances will be killed. # We wait up to 40s for LXD. start-stop-daemon --stop --quiet -R SIGPWR/40 -p "${PIDFILE}" eend ${?} fi }