13.01.13

Как отключить X сервер Ubuntu


Есть много причин, по которым может понадобиться отключить X сервер — к примеру, если нужносделать свой рабочий компьютер сервером (хотя бы и временно), или решить какие-либо проблемы с видеокартой… К примеру, я предпочитаю запускать X с помощью команды «startx» в тот момент, когда я полностью готов к его запуску. Мало приятного наблюдать пустой черный экран, когда новый драйвер для встроенной видеокарточки Intel не хочет работать — в старые времена, я бы нажал комбинацию Ctrl+Alt+Backspace и починил бы его. В Ubuntu это происходит немного иначе.

В Ubuntu используется система инициализации под названием «Upstart». Если вы пробовали связываться с update-rc и замечали, что выключение /etc/init.d/gdm не работает, то теперь вы поймете почему. Конечно, можно выполнить:

/etc/init.d/gdm stop

Однако это лишь временное решение, тем более которое работает когда у вас и так все работает. К примеру, у меня если видеодрайвер не заработал, то моя консоль не восстанавливается, а я просто получаю пустой экран.
Чтобы X сервер полностью перестал запускаться, нужно правильно работать с upstart. Upstart-определения хранятся в каталоге /etc/init (не-не, только не /etc/init.d). В них описан процесс запуска компьютера в стиле init.d скриптов Gentoo — вы можете определять зависимости, события, фазы и т.п. Итак, заглянем в /etc/init/gdm.conf:
    # 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 "

    # Нужно закомментировать следующее:
    #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
Обратите внимание, что я закомментировал строки start on и stop on. Теперь вы сможете запускать X-сервер и графический менеджер с помощью /etc/init.d/gdm start (даже более правильно — initctl start gdm), но автоматически при запуске компьютера он стартовать не будет.
По материалам сайта http://tech.akom.net/