How to make zram swap persistent with higher priority?

Ok. Because of stateless, I had to edit service via systemctl edit zram-setup@zram0.service to be sure that swupd repair won’t “repair” modified service file.

I also made some modifications to service so I can specify compression algorithm and priority in /usr/local/lib/zram.conf.d
In override.conf (opened by executing systemctl edit zram-setup@zram0.service) I wrote:

[Service]
ExecStart=
ExecStart=-/bin/sh -c 'echo $ZRAM_COMP_ALG > /sys/class/block/%i/comp_algorithm'
ExecStart=-/bin/sh -c 'echo $ZRAM_NUM_STR > /sys/class/block/%i/max_comp_streams'
ExecStart=-/bin/sh -c 'echo $ZRAM_DEV_SIZE > /sys/class/block/%i/disksize'
ExecStart=-/bin/sh -c '[ "$SWAP" = "y" ] && mkswap /dev/%i && swapon -p $SWAP_PRI /dev/%i'
ExecStop=
ExecStop=-/bin/sh -c '[ "$SWAP" = "y" ] && swapoff /dev/%i'
ExecStop=-/bin/sh -c 'echo 1 > /sys/class/block/%i/reset'

/usr/local/lib/zram.conf.d/zram0-env file:

ZRAM_COMP_ALG=zstd
ZRAM_NUM_STR=8
ZRAM_DEV_SIZE=4294967296
SWAP=y
SWAP_PRI=10
1 Like