Disabling X server autostart (gdm) on Ubuntu Karmic (9.10)
Posted by Admin • Monday, November 16. 2009 • Category: Linux
There are many reasons one may wish to do this - running their desktop installation as a sever (temporarily perhaps), solving some video issues... or just doing it to get that facet of control back. I, for instance, prefer to run X with "startx" when I'm ready to do so. I do not enjoy a black screen when the latest intel video driver doesn't work - I'd rather Ctrl-Alt-Backspace and fix it.
Anyway, so Karmic (and apparently certain installs before Karmic, as well) uses an init system called "Upstart". If you've tried messing with update-rc and noticed that disabling /etc/init.d/gdm doesn't work, this is why. Oh sure, you can run /etc/init.d/gdm stop, but it's only temporary, assuming that works for you at all - for me it does not - my console does not recover and I get a black screen.
To get it to stop permanently the proper way is apparently to work with upstart. You'll notice some definitions in /etc/init (no, not /etc/init.d). These work somewhat like the Gentoo init.d scripts - you can define dependencies, events, phases, etc. So looking at /etc/init/gdm.conf I see:
Notice that I commented out the start on and stop on lines. That took care of it. You can still start it with /etc/init.d/gdm start (or perhaps more correctly: initctl start gdm) but it won't start on boot.
Anyway, so Karmic (and apparently certain installs before Karmic, as well) uses an init system called "Upstart". If you've tried messing with update-rc and noticed that disabling /etc/init.d/gdm doesn't work, this is why. Oh sure, you can run /etc/init.d/gdm stop, but it's only temporary, assuming that works for you at all - for me it does not - my console does not recover and I get a black screen.
To get it to stop permanently the proper way is apparently to work with upstart. You'll notice some definitions in /etc/init (no, not /etc/init.d). These work somewhat like the Gentoo init.d scripts - you can define dependencies, events, phases, etc. So looking at /etc/init/gdm.conf I see:
# gdm - GNOME Display Manager # # The display manager service manages the X servers running on the # system, providing login and auto-login services description "GNOME Display Manager" author "William Jon McCann" # I Commented these out: #start on (filesystem # and started hal # and tty-device-added KERNEL=tty7 # and (graphics-device-added or stopped udevtrigger)) #stop on runlevel [016] emits starting-dm respawn script [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] # Check kernel command-line for inhibitors for ARG in $(cat /proc/cmdline) do case "${ARG}" in text|-s|s|S|single) exit 0 ;; esac done if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG LANGUAGE elif [ -r /etc/environment ]; then . /etc/environment export LANG LANGUAGE fi initctl emit starting-dm DM=gdm exec gdm-binary $CONFIG_FILE end script
Notice that I commented out the start on and stop on lines. That took care of it. You can still start it with /etc/init.d/gdm start (or perhaps more correctly: initctl start gdm) but it won't start on boot.
0 Comments
Add Comment