Boot my Office PC as I’m entering the Parking Garage!

WAKE ON SCHEDULE

SUMMARY

Using a database of workstations’ login times, send Wake on LAN packets to specific workstations 5-10 minutes prior to the typical arrival of the user.

BENEFITS

This lets the user avoid having to sit through a possibly long boot up process.

The system is ready for login when the user arrives.

We run our virus scans, virus signature updates and system updates while waiting for the user to arrive.

We don’t leave all the machines on all night consuming electricity.

Each machine’s waking schedule is determined by the typical arrival time of the user.

STEPS

Create a database (or a file) to store the mac addresses and login times as they occur each day.

Using your favorite method, write a program or a script to add an entry with a timestamp.

Insert a line into your login script so that your program or script is run at every login.

Remember to remove entries older than a week and to ignore entries that are subsequent in the same day. (If I login at 7am and reboot at 9:30am, we can ignore the 9:30am login.)

Using your favorite method, write a program or script to find typical arrival (login) times that are within the next 5-10 minutes, get the mac addresses, and send WOL packets to those selected.

Using CRON or scheduled tasks, run the program/script (created in step 5) every few minutes during work days. This can also be tuned to only run during certain hours of the day, preceding the start of a shift.

CAVEATS

This does use 5-10 minutes more electricity, but the cost of that electricity is less than the 2-3 minutes of employee time spent watching a machine boot up. (Not to mention the great value of happy users!)

When a user plans a trip or a vacation, we currently disconnect the power cord so that the machine doesn’t come on while they are away. I’m working on a better solution to this piece.

When a user returns from a week or more absence, they will have to turn their machine on manually on their first day back at work. Another possible solution to this would be to have the machine power itself back off after a time in case the user misses work that day. (Using a power scheme to power off ALL idle machines after a period aggravates my users. I prefer a custom solution that will only power them off if nobody arrives and logs in.)

(0 votes, average: 0.00 out of 5)You need to be a registered member to rate this post.

Disclaimer: As with everything else at SUSE Conversations, this content is definitely not supported by SUSE (so don't even think of calling Support if you try something and it blows up). It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.

1 Comment

I now have a windows service that runs at boot, counting the minutes until login.

If it reaches 30 minutes without a user login, then it will power down the PC.

When a user logs in (under 30 minutes), the windows service suspends operation until the next reboot.

This means that our machines come on just before we are expected at work (using WOL and a db of recent logins), and if we don’t show up for 30 minutes, they will power back down to save energy.

Next I might try to get them to WOL when we scan our id badges at the gate, but that is pretty much a closed system so I don’t have much hope for this step. Plus I have some other projects that are of a higher priority right now. One of them is that I want to graph our electrical usage in the plant on our internal web page. Wish me luck.