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: Может кто-нибудь объяснить мне, что здесь происходит, и что я могу сделать, чтобы не получить сообщения об ошибках.

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, а затем выполняет ваши действия.

  • Как переместить окно из одного диспетчера окон в другой с помощью WM?
  • Застрял в отказоустойчивой сессии xterm
  • Отсоединить / перезапустить приложение, запущенное на X поверх SSH?
  • Графическое исправление ошибок? Исправленный файл op оставил тень «почти drag-n-drop» файла, как его удалить?
  • Утилита буфера обмена для вставки нескольких строк по одному
  • Какую программу я могу использовать для поиска заголовков всех открытых окон?
  • как ssh -Y, а затем su - <другой пользователь> и все еще перенаправляет X-приложения на вашу локальную машину
  • Как мне начать X после ssh'ing в удаленную коробку?
  • В чем разница между пересылкой X11 с помощью `ssh -X hostname и xhost + hostname; ssh hostname`?
  • Как напечатать переменную bash, которая имеет массив как значение
  • Как переназначить мой ключ CapsLock для работы, как если бы это был ключ Return с помощью setxkbmap?
  • Как я могу исправить мои искаженные искажения X11?
  • Linux и Unix - лучшая ОС в мире.