So my general modus operandi is to boot the laptop, suspend using the /root/idle script, and resume. Lid close is set to do nothing, so there's really no other way to suspend. Note that tihs script is highly customized for my environment, so it may not fit yours. But the ideas are all good, so feel free to pick and choose the pieces you need/want. IMPORTANT: I am running rh8 on this laptop, so the actual suspend method will vary. I currently cannot suspend, due to acpi not doing the right thing in 2.4. one last note before I paste in the script. I also put in a "killall -STOP mozilla-bin" into the acpi scripts, and triggered it off the lid switch detection. killall -CONT mozilla-bin afterwards. mozilla still has the insane bookmark code from netscape that writes out its bookmark file EVERY MINUTE. keeping the disk spinning, plus eating up of cpu from animated gif's, flash, etc. - Kevin also available at http://rightsock.com/~kjw/Tech/idle.sh.txt to get the tabs right. #!/bin/sh # usage: $0 [-f] [-n] # -f = force. no network checks # -n = not really. do everything but actual suspend # presumption: eth0 is always the pcmcia. # my config: builtin ethernet isn't insmod'ed by default, so the system # just doesn't know it's there. if ifconfig eth0 >/dev/null 2>&1 ; then # check if there is any pending network activity if [ " $1" = ' -f' ] ; then # -f is specified, skip the network checks echo 'Skipping network checks' shift 1 else # no -f found; normal code path # check mailq MAILQ=`mailq -Ac` # rh6.2: while [ "$MAILQ" != 'Mail queue is empty' ] ; do # rh7.0: while [ "$MAILQ" != '/var/spool/mqueue is empty' ] ; do # rh8.0: while [ "$MAILQ" != '/var/spool/mqueue is empty # Total requests: 0' ] ; do # rh8.0 client mqueue: (yes, multiline. WHITESPACE IMPORTANT) while [ "$MAILQ" != '/var/spool/clientmqueue is empty Total requests: 0' ] ; do echo 'mail pending. press enter to retry, or -f to override' echo "$MAILQ" read LINE if [ "$LINE" = '-f' ] ; then break ; fi MAILQ=`mailq -Ac` done service sendmail stop # check for active tcp connections # ignore :25 connections, as the mailq test has that covered # ignore web, other 'pending close' states # ignore X11 connections. only thing I ever use is x2x NETSTAT="`netstat -n --inet 2>&1 | egrep -v '(:25 |TIME_WAIT|FIN_WAIT|CLOS|LAST_ACK|127.0.0.1:|:80 |:443 |:6000 )' `" while [ `echo "$NETSTAT" | wc -l` != 2 ] ; do echo 'network connections still active. press enter to retry, or -f to override' # by default, only print out the filtered netstat echo "$NETSTAT" read LINE if [ "$LINE" = '-f' ] ; then break ; fi NETSTAT="`netstat -n --inet 2>&1 | egrep -v '(:25 |TIME_WAIT|FIN_WAIT|CLOS|LAST_ACK|127.0.0.1:|:80 |:443 |:6000 )' `" done fi # endif cmd line -f # shut down networking killall dhcpcd ifconfig eth0 down # sometimes the wired ethernet is there, but since it's not my # normal connection, it must've been temporary ifconfig eth1 >/dev/null 2>&1 && ifconfig eth1 down rmmod 3c59x else echo 'No network; skipping checks' fi # since I can't suspend with 2.4 acpi, additionally disable certain # daemons because they eat cpu, and thus power # lpd reads from disk every minute service lpd stop # fetchmail is how I get my mail. obviously useless if the network is down. # PAUSE it only killall -STOP fetchmail # if I can suspend if false ; then # eject card if possible #cardctl eject # report on battery condition apm # suspend if [ " $1" != ' -n' ] ; then sleep 2 # -n not found; normal code path apm --suspend else # -n is specified, skip the actual suspend process echo 'Not really suspending...' fi # TODO: wait for eth0 to be up! else all below will fail fi # if I can acpi low-power if true ; then # enter low power state echo 4 >/proc/acpi/sleep echo "Press enter to revive" read echo "Getting new dhcp lease" # Work network is doubled, because sometimes the dhcp server # isn't responsive. # NOTE: you can press ctrl-c to skip over various networks # without interrupting this script for TRY in any Work Work any Work Work any Work Work do echo "Looking for $TRY network" /usr/local/etc/iwkey $TRY if dhcpcd -t 10 eth0 ; then break ; fi done fi # communicate to the user that eth0 is up now ifconfig eth0 # resume fetchmail killall -CONT fetchmail # kjw hack - I can't send mail directly from my laptop any more because # of 1- dynamic addresses being blocked and 2- firewall at work, so # sm-client starts the sendmail client, and an ssh-tunnel to my colo box, # listening on 127.0.0.1:25. This way I can locally queue messages for # later delivery, yet still deliver through the colo, which is a trusted # mail server. #service sendmail start service sm-client start service lpd start # immediately switch back into X chvt 7 exit 0 On Wed, 11 Aug 2004 14:18:15 +1000, Peter Smith <pasmith@xxxxxxxxxxxx> wrote: > I would like to see Kevin's scripts too. Is there anything on ifconfig, > iwconfig and route for beginners? Google helped me get this far, but I > don't really know what I am doing :-).