Unnecessary
Sets reboot, changes take effect on reboot anyway
This commit is contained in:
@@ -1,47 +0,0 @@
|
|||||||
echo "Resize zram to match the shipped config"
|
|
||||||
|
|
||||||
# 90-omarchy.conf changed the device size. The migration that first applied the
|
|
||||||
# zram tuning is one-shot, so machines that already ran it have the new file on
|
|
||||||
# disk and the old device still running; nothing would pick the size up until
|
|
||||||
# something else rebooted them.
|
|
||||||
|
|
||||||
zram_disksize=${OMARCHY_ZRAM_DISKSIZE:-/sys/block/zram0/disksize}
|
|
||||||
swaps=${OMARCHY_SWAPS:-/proc/swaps}
|
|
||||||
|
|
||||||
# The size is an expression, and the generator is the only thing that evaluates
|
|
||||||
# it. Ask it what the shipped config comes to rather than repeating the
|
|
||||||
# arithmetic here, where the two would drift apart on the next tuning change.
|
|
||||||
units=$(mktemp -d)
|
|
||||||
trap 'rm -rf "$units"' EXIT
|
|
||||||
desired_mb=$(/usr/lib/systemd/system-generators/zram-generator "$units" 2>&1 |
|
|
||||||
grep -oP '/dev/zram0 with \K[0-9]+') || true
|
|
||||||
|
|
||||||
actual_bytes=$(cat "$zram_disksize" 2>/dev/null) || actual_bytes=0
|
|
||||||
|
|
||||||
# A device already at the right size needs neither a restart nor a reboot,
|
|
||||||
# whether an earlier boot picked the config up or another user got here first.
|
|
||||||
if [[ -n $desired_mb && $actual_bytes == $((desired_mb * 1024 * 1024)) ]]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if sudo systemctl daemon-reload; then
|
|
||||||
# Resizing swaps the device off first, which faults every stored page back
|
|
||||||
# into memory. That's only cheap while it's empty, so a device under
|
|
||||||
# pressure keeps its old size until the next boot.
|
|
||||||
zram_used=$(awk '$1 == "/dev/zram0" {print $4}' "$swaps")
|
|
||||||
|
|
||||||
# No row at all means the device is not swap right now, and that covers two
|
|
||||||
# unlike situations. A device that doesn't exist yet is the one worth acting
|
|
||||||
# on: the restart brings it up against the config daemon-reload just picked
|
|
||||||
# up. A device that exists but is swapped off is not, because the restart
|
|
||||||
# resets it first, and reset returns EBUSY for as long as anything still
|
|
||||||
# holds it open. That leaves a "Job failed" from systemd in the migration
|
|
||||||
# output and still ends up asking for the reboot, so go straight there.
|
|
||||||
if [[ -n $zram_used || ! -e $zram_disksize ]] &&
|
|
||||||
[[ ${zram_used:-0} == 0 ]] &&
|
|
||||||
sudo systemctl restart dev-zram0.swap; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
omarchy-state set reboot-required
|
|
||||||
Reference in New Issue
Block a user