CasperSecurity

Current Path : /usr/lib/pm-utils/sleep.d/
Upload File :
Current File : //usr/lib/pm-utils/sleep.d/95hdparm-apm

#! /bin/sh
#
# This script adjusts hard drive APM settings using hdparm. The hardware
# defaults (usually hdparm -B 127) cause excessive head load/unload cycles
# on many modern hard drives. We therefore set hdparm -B 254 while on AC
# power. On battery we set hdparm -B 128; this still does not guarantee
# disk parking, but is safer than causing lots of mechanical wear on disks
# as we seem to get currently with 127.
#
# Refactored from acpi-support's 90-hdparm.sh for pm-utils

if grep -wq "nohdparm" /proc/cmdline ; then
    exit 0
fi

# Do nothing when called via /etc/init.d/acpi-support; udev rules take care
# of setting the initial hdparm policy for us.
if ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]; then
    exit 0
fi

if [ -e /usr/sbin/laptop_mode ] ; then
    LMT_CONTROL_HD_POWERMGMT=$(. /etc/laptop-mode/laptop-mode.conf && echo "$CONTROL_HD_POWERMGMT")
    if [ "$LMT_CONTROL_HD_POWERMGMT" != 0 ] \
       && [ -e /var/run/laptop-mode-tools/enabled ]
    then
        # Laptop mode controls hdparm -B settings, we don't.
        exit 0
    fi
fi

. /lib/hdparm/hdparm-functions

resume_hdparm_apm()
{
    for dev in /dev/sd? /dev/hd? ; do
        apm_opt=
        if [ -b $dev ] && hdparm_try_apm $dev ; then
            for option in $(hdparm_options $dev); do
                case $option in
                    -B*)
                        apm_opt=$option
                        ;;
                    *)
                        ;;
                esac
            done
            if [ -n "$apm_opt" ]; then
                hdparm $apm_opt $dev
            fi
        fi
    done
}

resume_hdparm_spindown()
{
    for dev in /dev/sd? /dev/hd? ; do
        # Check for force_spindown_time option
        # If defined apply hdaprm -S even if APM is not supported
        # See also #758988
        ignore_apm=
        options=$(hdparm_options $dev)
        case $options in
            (*'force_spindown_time'*)
                ignore_apm='true'
                ;;
        esac
        apm_opt=
        if [ -b $dev ]; then
            if hdparm_try_apm $dev || [ "$ignore_apm" = true ] ; then
                for option in $(hdparm_options $dev); do
                    # Convert manually introduced option "force_spindown_time"
                    # back to "-S" understandable by hdparm
                    option=$(echo $option| sed 's/force_spindown_time/-S/')
                    case $option in
                        -S*)
                            apm_opt=$option
                            ;;
                        *)
                            ;;
                    esac
                done
                if [ -n "$apm_opt" ]; then
                    hdparm $apm_opt $dev
                fi
            fi
        fi
    done
}

case "$1" in
    true|false) # powersaving on/off
        resume_hdparm_apm
        ;;
    thaw|resume)
        resume_hdparm_apm
        # only set the -S option on resuming, not necessary for power.d
        resume_hdparm_spindown
        ;;
    *)
        exit 254
        ;;
esac
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY