> I found my problem.  In addition to changing the hostname in /etc/hosts
> and /etc/sysconfig/network, I also used the hostname command to set the
> hostname.  That's what made X mad.  I don't understand why though.
> Questions:

/etc/sysconfig/network tells the init scripts what to set the hostname 
to on boot. Changing it there won't take effect until the init scripts 
are run. You have to set it yourself otherwise, which you figured out.

I highly recommend reading through all init scripts even if you don't 
fully understand it. A true sysadmin knows his init scripts. In 
particular, /etc/rc.d/rc.sysinit which is the first script run.

> 1. What files, if any, does the hostname command write to?  I couldn't
> find any it wrote to.

It writes to /proc/sys/kernel/hostname

You don't even need hostname, you can write it yourself.

echo "wang" >/proc/sys/kernel/hostname

> 2. What programs, if any, look at the information the hostname command
> gives?

It merely tells the kernel what its hostname is, and the kernel tells 
everything else.

> 3. When would you want to use the hostname command?

Its already in your init scripts.