Tuesday, May 17, 2011

Windows Shutdown VBScript

A friend of mine asked me to help figure out why her shutdown script was not working. For those who don't care to read that whole article, it looked something like this:

@echo off
echo Scheduling shutdown in 1.5 hours.
shutdown.exe /h /t 5400

As it turns out, you can't actually use /h with /t. (Although /s works fine with /t) My solution was to learn some VBScript and kill the problem with excessive firepower! All you need to do is type the following code into an editor and save it as a *.vbs file. (I called mine Hibernate.vbs) I placed it right on the desktop for quick access.

hours = 0.001 'Specify the # of hours to sleep here
seconds = hours * 60 * 60
ms = seconds * 1000

Set wshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo("Hibernate in " & seconds & " seconds")
WScript.Sleep(ms)
cancel = wshShell.Popup("Cancel Hibernate?", 10, "System Shutdown!", VbYesNo + VbExclamation)
If cancel = VbYes Then
  WScript.Quit(0)
End If
wshShell.Run("shutdown.exe /h")

This script will inform the user that hibernation will occur. Once the user presses OK then it will wait the specified number of hours before re-informing the user that hibernation is happening. If the user doesn't respond or opt to cancel, then the script continues and the computer is sent into hibernation.

Wednesday, April 20, 2011

Testing Google Code Prettifier

Stumbled across a code prettifier that can be used for blogger from google code.

You can set it up for yourself. Here is a link to the stackoverflow page that outlines the setup.


#!/bin/perl
#simple test code

$variable = "Test stuff";
$another = 100;
$decimal = 99.9;
$special = 1x01;

print("Prettify me! %s", $variable);

Sunday, March 6, 2011

VM - Speeding Up A Linux Guest

Recently I was having an issue with a my CentOS guest running slowly in VirtualBox. Evidently this has something to do with the interrupt checking interval of the Linux system being at 1GHz.

To force the guest to use an interrupt check at only 100Hz, the divider=10 kernel option should be set.

Follow these steps:
  • Use the root account (su)
  • Edit the /boot/grub/grub.conf file
  • add "divider=10" to the end of the kernel line
Here is a sample of the modified grub.conf.
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.32.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.32.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet divider=10
initrd /initrd-2.6.18-194.32.1.el5.img
title CentOS (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet divider=10
initrd /initrd-2.6.18-194.el5.img

You can use cat /proc/cmdline in order to check if it took.
~ $ cat /proc/cmdline
ro root=/dev/VolGroup00/LogVol00 rhgb quiet divider=10