Merge pull request #212 from BohdanBuinich/fix-services
[ALL] Fix Service Failures during Boot
This commit is contained in:
commit
23bc8fb5ca
|
@ -2,10 +2,10 @@
|
||||||
DefaultDependencies=no
|
DefaultDependencies=no
|
||||||
After=nss-lookup.target
|
After=nss-lookup.target
|
||||||
Before=network-online.target
|
Before=network-online.target
|
||||||
Type=oneshot
|
|
||||||
RemainAfterExit=yes
|
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
RemainAfterExit=yes
|
||||||
ExecStart=sh -c 'while ! ping -c 1 docker.io; do sleep 1; done'
|
ExecStart=sh -c 'while ! ping -c 1 docker.io; do sleep 1; done'
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
|
|
@ -1,81 +1,57 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Credits go to: https://github.com/home-assistant/operating-system/
|
# Credits go to: https://github.com/home-assistant/operating-system/
|
||||||
set -e
|
set -e # Exit on any command failure
|
||||||
|
|
||||||
#### Options ####
|
|
||||||
|
|
||||||
|
# Options
|
||||||
TYPE=""
|
TYPE=""
|
||||||
MOUNT=""
|
|
||||||
DEVICE=""
|
|
||||||
SIZE=0
|
SIZE=0
|
||||||
|
MOUNT=""
|
||||||
|
|
||||||
#### Parse arguments ####
|
# Parse arguments
|
||||||
|
while [ "$#" -gt 0 ]; do
|
||||||
while [ "$1" != "" ]; do
|
case "$1" in
|
||||||
key=$1
|
-t|--type) TYPE="$2"; shift 2 ;;
|
||||||
case $key in
|
-s|--size) SIZE="$2"; shift 2 ;;
|
||||||
-t|--type)
|
-m|--mount) MOUNT="$2"; shift 2 ;;
|
||||||
TYPE=$2
|
*) echo "Error: Invalid argument '$1'"; exit 1 ;;
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-s|--size)
|
|
||||||
SIZE=$2
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-m|--mount)
|
|
||||||
MOUNT=$2
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "[Error] $0 : Argument '$1' unknown"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
shift
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Valide Type
|
# Validate Type
|
||||||
if [ "$TYPE" != "swap" ] && [ "$TYPE" != "fs" ]; then
|
if [ "$TYPE" != "swap" ] && [ "$TYPE" != "fs" ]; then
|
||||||
echo "[Error] Type unknown!"
|
echo "Error: Type must be 'swap' or 'fs'"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Lookup device
|
# Determine device based on type and mount
|
||||||
|
DEVICE="/dev/zram"
|
||||||
if [ "$TYPE" = "swap" ]; then
|
if [ "$TYPE" = "swap" ]; then
|
||||||
DEVICE="/dev/zram0"
|
DEVICE+="0"
|
||||||
elif [ "$MOUNT" = "var" ]; then
|
elif [ "$MOUNT" = "var" ]; then
|
||||||
DEVICE="/dev/zram1"
|
DEVICE+="1"
|
||||||
#elif [ "$MOUNT" = "tmp" ]; then
|
|
||||||
# DEVICE="/dev/zram1"
|
|
||||||
else
|
else
|
||||||
echo "[Error] No device for lookup!"
|
echo "Error: No device for lookup!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Calc 20% of memory for ZRAM swap partition
|
# Calculate 20% of memory for ZRAM swap partition if not specified
|
||||||
if [ "$TYPE" = "swap" ] && [ "$SIZE" -eq "0" ]; then
|
if [ "$TYPE" = "swap" ] && [ "$SIZE" -eq 0 ]; then
|
||||||
SIZE="$(awk '/MemTotal/{ print $2 * 0.20 }' /proc/meminfo)K"
|
SIZE=$(awk '/MemTotal/{ print int($2 * 0.20) }' /proc/meminfo)K
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Init device
|
# Initialize ZRAM device
|
||||||
zramctl "$DEVICE" -s "$SIZE" -a lz4
|
zramctl "$DEVICE" -s "$SIZE" -a lz4
|
||||||
|
|
||||||
# Swap
|
# Setup based on type
|
||||||
if [ "$TYPE" = "swap" ]; then
|
if [ "$TYPE" = "swap" ]; then
|
||||||
mkswap -L "ovos-zramswap" "$DEVICE"
|
mkswap -L "ovos-zramswap" "$DEVICE"
|
||||||
fi
|
elif [ "$TYPE" = "fs" ]; then
|
||||||
|
|
||||||
# FileSystem
|
|
||||||
if [ "$TYPE" = "fs" ]; then
|
|
||||||
mkfs.ext4 -L "ovos-$MOUNT" -O ^has_journal "$DEVICE"
|
mkfs.ext4 -L "ovos-$MOUNT" -O ^has_journal "$DEVICE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copy persistent file structures into zram device
|
# Handle var mount
|
||||||
if [ "$MOUNT" = "var" ]; then
|
if [ "$MOUNT" = "var" ]; then
|
||||||
# Check if this is a first run
|
VAR_DIR="/mnt/data/var"
|
||||||
if [ ! -d /mnt/data/var ]; then
|
[ ! -d "$VAR_DIR" ] && mkdir -p "$VAR_DIR" && cp -af /var/* "$VAR_DIR"
|
||||||
mkdir -p /mnt/data/var
|
cp -af "$VAR_DIR"/* "$DEVICE"
|
||||||
cp -af /var/* /mnt/data/var/
|
|
||||||
fi
|
|
||||||
cp -af /mnt/data/var/* "$DEVICE"
|
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue