Debian: как разрешить сбой Xserver

Я продолжаю находить похожие сообщения в Интернете, но я не могу использовать эти решения в своем случае. в моем файле /etc/bash.bashrc , у меня есть следующий код, расположенный в самом низу:

 if [ -e /tmp/.X0-lock ]; then rm /tmp/.X0-lock fi startx cd /home/user1/Documents/ProgramFile ./ myProgram.sh 

Это автоматический запуск программы при запуске.

Я запускаю Debian 6.0.7. Я хочу запустить свою программу как root при запуске. Я выполнил следующую команду для отключения GUI:

  update-rc.d -f gdm3 remove 

Я изменил /etc/inittab чтобы позволить пользователю root автоматически войти в систему:

 1:2345:respawn:/bin/login -f root tty1 </dev/tty1 > /dev/tty1 2>&1 

когда я загружаю свой ящик, я получаю следующую ошибку:

 _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running Fatal server error: Cannot establish any listening sockets - Make sure an X server isn't already running Please consult the The X.Org Foundation support at http://wiki.x.org for help. Please also check the log file at "/var/log/Xorg.0.log" for additional information. (WW) xf86CloseConsole: KDSETMODE failed: Bad file descriptor (WW) xf86CloseConsole: VT_GETMODE failed: Bad file descriptor 

Странно, что это появляется в белом ящике в верхнем левом углу экрана, он остается там на некоторое время (~ 15 секунд), а затем я вижу, что мой код выполняется, и экран меняется на мое приложение.

Q: Может кто-нибудь объяснить мне, что здесь происходит, и что я могу сделать, чтобы не получить сообщения об ошибках.

  • Как создать новый Xauthority без дома?
  • Тот же размер окна на разных мониторах
  • минимальный оконный менеджер для обеспечения визуального chroot и выхода из приложения
  • Видимые части окон, не перерисованные в некоторых приложениях
  • Мышь непригодна для использования в Java-программах под Gnome Shell
  • Методы вставки содержимого первичного отбора X11?
  • Как назначить команду оболочки команде?
  • Как устранить неисправную переадресацию X11 с помощью ssh?
  • 2 Solutions collect form web for “Debian: как разрешить сбой Xserver”

    Похоже, что вы не изменили уровень выполнения по умолчанию и X Server уже запущен. Вы должны были установить значение 3, то есть:

      ID: 3: initdefault: 

    Хотя я не думаю, что ваш скрипт будет работать в любом случае. Эта часть:

     cd / home / user1 / Documents / ProgramFile
     ./ myProgram.sh
    

    будет выполнен только после остановки X Server.

    Ваш скрипт не проверяет, запущен ли X.
    Временное решение:

     if [ -e /tmp/.X0-lock ]; then XPID=$(cat /tmp/.X0-lock) if ps -p $XPID >/dev/null; then echo "X already running" else rm /tmp/.X0-lock startx fi fi cd /home/user1/Documents/ProgramFile ./myProgram.sh 

    Однако я бы сделал что-то вроде этого:

     # /etc/inittab 3:2345:respawn:/bin/login -f username tty3 < /dev/tty3 > /dev/tty3 2>&1 

    а также

     # /home/username/.bashrc if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty3 ]; then startx -- :0 -quiet -logverbose 11 cd /mydir ./myprog fi 

    Таким образом, вы автоматически создаете оболочку на tty3. Предполагая, что bash – это ваша текущая оболочка, bash проверяет, работает ли она на tty3, а затем выполняет ваши действия.

    Linux и Unix - лучшая ОС в мире.