Possible solution below (only this comment top posted).

On Wed, May 6, 2009 at 8:02 AM, Dazed_75 <lthielster@gmail.com> wrote:
Perhaps I am way off base here but why are you expecting runlevel 3 to not run X?  Yes, that was the SysVinit definition, but has not been used in debian or ubuntu in a long time:

  http://www.debianadmin.com/debian-and-ubuntu-linux-run-levels.html

I think I read that Fedora, RedHat had started using upstart but I don't know whether they kept the runlevel definintions they used previously like in RH9:

  http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/s1-boot-init-shutdown-sysv.html

The confusion in usage of runlevels by different systems is made much clearer in this wikiperia article:

  http://en.wikipedia.org/wiki/Runlevel

So again, I may be off base here, but it seems to me there is no way in ubuntu 9.04 to do what you want without editing some of the services out of some runlevel (2-5) before tryiing to enter it and expecting X not to run.  IOW, runlevel 2-5 are all the same un debian/ubuntu UNLESS you change their definition first.

Hmmm, I just realized that for their server edition, they probably have done so already.  I don't have ne installed to look at.

--
Dazed_75 a.k.a. Larry

Take a look at the following but read down a ways to find the solution that did work for someone:
 
  http://stackoverflow.com/questions/78408/how-do-i-change-default-runlevel-in-ubuntu

--
Dazed_75 a.k.a. Larry