summaryrefslogtreecommitdiff
path: root/app-emulation/lxd/files/lxd-4.0.0.initd
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/lxd/files/lxd-4.0.0.initd')
-rw-r--r--app-emulation/lxd/files/lxd-4.0.0.initd54
1 files changed, 54 insertions, 0 deletions
diff --git a/app-emulation/lxd/files/lxd-4.0.0.initd b/app-emulation/lxd/files/lxd-4.0.0.initd
new file mode 100644
index 000000000000..03ec12e44f56
--- /dev/null
+++ b/app-emulation/lxd/files/lxd-4.0.0.initd
@@ -0,0 +1,54 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+DAEMON=/usr/sbin/lxd
+PIDFILE=/run/lxd.pid
+TIMEOUT=10
+
+extra_commands="stopall"
+
+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
+ install -d /var/lib/lxd --group lxd --owner root --mode 0775
+ start-stop-daemon --start \
+ --pidfile ${PIDFILE} \
+ --exec ${DAEMON} \
+ --background \
+ --make-pidfile \
+ -- \
+ ${LXD_OPTIONS}
+ eend ${?}
+}
+
+stop() {
+ if [[ ${RC_GOINGDOWN} = YES ]] || [[ ${RC_REBOOT} = YES ]]; then
+ stopall
+ else
+ ebegin "Stopping lxd service (but not containers)."
+ start-stop-daemon --stop --quiet -R TERM/45 -p ${PIDFILE}
+ eend ${?}
+ fi
+}
+
+stopall() {
+ ebegin "Stopping lxd service and containers."
+ lxc stop --all --timeout $TIMEOUT >/dev/null 2>&1
+ if [[ ${?} -ne 0 ]]; then
+ lxc stop --all --force || eerror "Could not stop all containers."
+ fi
+ if "${DAEMON}" shutdown; then
+ rm -f ${PIDFILE}
+ eend 0
+ fi
+ eend ${?}
+}