Kis script swsuspend-hez

Címkék

Szevasztok!

Készítettem egy - igaz nem a legszebb - scriptet, azoknak akik használják a 2.6 -os linux kernel software suspend funkcióját, de újraindítás után esetleg nem működik ez vagy az.A program annyit tesz, hogy még a hibernáció előtt leállít programokat, amik nem szeretik ha hidegre teszik :).

Majd készít egy futtatható állományt a /tmp alá és elindítja a háttérben, az elindított program a felolvasztásig nem csinál semmit (sleep 20 :)).

Erre azért van szükség, mert a hibernálás bezárja az erederi scriptet.

A gép újraindítása után lefut az altatás előtt a háttérben elindított program, ami elindítja az előzőleg leállított szolgáltatásokat, visszatölti a kernel modulokat... :)

Igazából nem egy 100%-os script, de remélem mindenki könnyen a saját igényeihez tudja igazítani.

Használjátok egészséggel: swsupend

Hozzászólások

van egyszerubb megoldas.

acpdi kell, es az elindit egy scriptet. a scriptbe a /proc/acpi/sleep-be iras ele kell tenni a kiloveseket, es utana az inditasokat. siman folytatja aascript vegrehajtasat amikor elindul. (Az esd, usb mar jol viseli a suspendet, viszont az esd-re dolgozo mplayer nalam a rtc hibakat dob, amig le nem allitom.

#!/bin/sh

# Default acpi script that takes an entry for all actions

set $*

# Take care about the way events are reported

ev_type=`echo "$1" | cut -d/ -f1`

if [ "$ev_type" = "$1" ]; then

event="$2";

else

event=`echo "$1" | cut -d/ -f2`

fi


case "$ev_type" in

button)

case "$event" in

power)

logger "acpid($ev_type): received a shutdown request:$@"

/sbin/init 0

break

;;

sleep)

logger "acpid($ev_type): received a sleep request:$@"

killall -TERM mplayer

#tuti szarabb a hardwer oraja.

hwclock --systohc

# killall -TERM esd #WORKAROUND, ha rainditok akkor "befagy"

# rmmod ohci-hcd ehci-hcd usb_storage scsi_mod usbcore

rmmod eth1394 ohci1394 ieee1394 eeprom

echo 4 > /proc/acpi/sleep

#WORKAROUND the kernel persist the systemtime end reload it:))

#This line run after resume:))

hwclock --hctosys

/usr/sbin/rdate time.kfki.hu &

# test -x /etc/init.d/anacron && /etc/init.d/anacron start >/dev/null

break

;;

*)

logger "acpid($ev_type): $@ is not defined"

;;

esac

;;

*)

logger "acpid(def) $@ is not defined; $(grep remaining /proc/acpi/battery/*/state)"

;;

esac

Ez tök jó, de: a Software Suspend 2 [www.suspend2.net]-höz adnak egy hibernate nevű szkriptet, ami ugyanezt megcsinálja, akár a kernelbeli swsusp vagy a külön foltként kínált swsusp2 vagy csak simán ACPI segítségével teszed hűvösre a géped. (Már akinek működik...) Mellékelnek egy listát is, amiben felsorolják azokat a modulokat, melyek nem szeretik a hibernálást. Gentoo portage-ben hibernate-script [packages.gentoo.org] a neve.