Версия пакета: swap_cleaner-0.1.2-alt1 Скрипт содержит опечатки: 1) Пользовательский $LABEL перезаписывается на LABEL 2) При обработке устройств с TYPE="swap" в цикле вместо конкретной строки передаётся вывод `cat /proc/swaps |grep \/ | cut -d ' ' -f1` целиком, из-за чего при наличии нескольких SWAP файлов или разделов, эти файлы и разделы не очищаются. ``` + MON_KEY='/dev/sda1: TYPE="swap" /dev/loop0: TYPE="swap"' + '[' '"swap" /dev/loop0: TYPE="swap"' == '"swap"' ']' + echo '/dev/sda1 не является разделом подкачки, проигнорировано' /dev/sda1 не является разделом подкачки, проигнорировано + for i in $1 + '[' -f /dev/loop0 ']' + '[' -b /dev/loop0 ']' ++ blkid -s TYPE /dev/sda1 /dev/loop0 + MON_KEY='/dev/sda1: TYPE="swap" /dev/loop0: TYPE="swap"' + '[' '"swap" /dev/loop0: TYPE="swap"' == '"swap"' ']' + echo '/dev/loop0 не является разделом подкачки, проигнорировано' ``` Необходимые правки: ``` --- a/usr/sbin/swap_cleaner +++ b/usr/sbin/swap_cleaner @@ -58,7 +58,7 @@ sclean() LABEL=`blkid -s LABEL -o value $1` swapoff $1 2> /dev/null dd if=/dev/zero of=$1 bs=$BS count=1 2>/dev/null - mkswap -U $UUID -L LABEL $1 1>/dev/null + mkswap -U $UUID -L $LABEL $1 1>/dev/null dd if=/dev/zero of=$1 bs=$BS seek=1 2>/dev/null else BS=4096 @@ -83,7 +83,7 @@ mclean() if [ -f $i ] ; then sclean $i "file" & elif [ -b $i ] ; then - MON_KEY=`blkid -s TYPE $1` + MON_KEY=`blkid -s TYPE $i` if [ "${MON_KEY#*=}" == '"swap"' ] ; then sclean $i "device" & else ```
swap_cleaner-0.1.2-alt2 -> sisyphus: Tue Jun 09 2026 Anton Midyukov <antohami@altlinux> 0.1.2-alt2 - sbin/swap_cleaner: fix for multiple swap partitions support (Closes: 59483). - Fix URL.