35 lines
956 B
Bash
35 lines
956 B
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
# This service runs on boot to work around issues relating to LXD and snapd.
|
|
|
|
# Workaround for https://github.com/conjure-up/conjure-up/issues/1448
|
|
if [ -f '/proc/1/environ' ] && grep -q '^container=lxc' /proc/1/environ; then
|
|
echo "lxc detected, applying snapd apparmor profiles"
|
|
(set +e
|
|
apparmor_parser /var/lib/snapd/apparmor/profiles/*
|
|
echo "apparmor_parser: exit status $?"
|
|
)
|
|
else
|
|
echo "lxc not detected, skipping snapd apparmor profiles"
|
|
fi
|
|
|
|
# Workaround for https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/357
|
|
services="{{services}}"
|
|
|
|
deadline="$(expr "$(date +%s)" + 600)"
|
|
|
|
while [ "$(date +%s)" -lt "$deadline" ]; do
|
|
for service in $services; do
|
|
echo "$service: checking"
|
|
if ! systemctl is-active "$service"; then
|
|
echo "$service: not active, restarting"
|
|
systemctl restart "$service" || true
|
|
fi
|
|
done
|
|
|
|
sleep 10
|
|
done
|
|
|
|
echo "deadline has passed, exiting gracefully"
|