Hello,

I kind of stumbled across the answer to my question yesterday by accident. I thought some other RHEL 6 users might find what I am trying to do interesting? (I'd like to do this on my home CentOS/fedora boxes at some point)

It turns out when the machine first boots and no one has logged in yet "root" controls the power settings. But if root has never had an X session, the dotfiles will be missing. So I needed to run commands like:

gconftool-2 --type integer --set 
/apps/gnome-power-manager/timeout/sleep_computer_ac 600

as user root. But I didn't want to change the default settings for all users. If someone logs in and wants to change "their" settings they can in the preferences app but by default I want it not to hibernate or suspend. Only want to suspend when the machines are idle or unused.

Here is what I am trying to do..

We have a system here called VCL. (http://vcl.ncsu.edu/) A student can go to a web page and request a machine so that they can ssh into it. Then they can run whatever programs they want back to their X display. The web page spits out an IP address for them to use. That way labs can be used even when they are physically closed by users at home. (The web app will pick the fastest systems in whatever labs)

Gnome doesn't know about students sshing into a box. It will just suspend a box if someone is logged in through some other method than GNOME. :(

So I run a shell script via a cron job every 15 minutes to see if someone is logged in. If they are, I set root's setting NOT to suspend. If no one is logged in I change root's settings TO suspend after 600 seconds of inactivity. This should keep it from suspending right on the hour mark mostly I hope in case I run wol scripts on an even hour via cron from a server. It seems to work as expected.

One thing I discovered about suspend to RAM in Linux is that normally devices don't have permission to wake up a PC. (Like ethernet) So besides setting up stuff in the BIOS, you have to mess with the file /proc/acpi/wakeup, at least in RHEL 6. Probably older RHELs/fedoras also.

/proc/acpi/wakeup contains a list of devices that could possibly wake up the pc. By default they are all disabled. I made a script to walk the list and change each / every entry to enabled. The script runs at each boot as a init script in runlevel 345.

With these two things in place I can send "wol" packets to the PCs to wake them or a user can press the keyboard and wake the PC to log in. The mouse on my DELL doesn't seem to wake the PC for some reason. But on our KVM switch the mouse does wake the PC. I guess its some kind of power issue with usb probably. They can also press the power button. Eventually the script could be made fancier and do hibernate instead of suspend. Maybe if no one has logged in for like 3 days?

If anyone else might be interested in the rpm I created to do this I could make it availible in a public repo. (Its very simple) I do need to tweak it some more before I can use it. The power saving improvements in RHEL 6 seem pretty cool to be able to do stuff like this. So thanks Red Hat. :)

Cheers,

Gary Gatling      | ITECS Systems

_______________________________________________
rhelv6-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/rhelv6-list

Reply via email to