Начните два сервера X при загрузке на RHEL

У меня есть мощная машина, которую я хочу использовать в качестве многоместной системы. Он имеет две графические карты и две пары клавиатур и мышей. Мне удалось успешно настроить два «места» с помощью udev и Xorg.conf и запустить два X-сервера из сценария, чтобы у двух пользователей были независимые сеансы. Только для записи, вот мой файл правил udev, где я идентифицирую каждый USB-концентратор и маркирую устройства и места:

SUBSYSTEM=="drm", KERNEL=="card[0-9]*", ATTRS{vendor}=="0x10de", DRIVERS=="nvidia", TAG+="master-of-seat" # SUBSYSTEM=="drm", KERNEL=="card0", ENV{ID_SEAT}="seat0" # SUBSYSTEM=="drm", KERNEL=="card1", ENV{ID_SEAT}="seat1" SUBSYSTEM=="input", ENV{ID_INPUT.tags}="input_default" # KVM HUBS KERNELS=="3-2", ATTRS{bDeviceClass}=="09", ENV{KVM_HUB}="1", ENV{ID_SEAT}="seat0" KERNELS=="3-8", ATTRS{bDeviceClass}=="09", ENV{KVM_HUB}="2", ENV{ID_SEAT}="seat1" # Devices of HUB 1 KERNEL=="event*", ENV{KVM_HUB}=="1", ATTRS{bInterfaceProtocol}=="01" SYMLINK+="kvm_keyboard_1" KERNEL=="event*", ENV{KVM_HUB}=="1", ATTRS{bInterfaceProtocol}=="02" SYMLINK+="kvm_mouse_1" # Devices of HUB 2 KERNEL=="event*", ENV{KVM_HUB}=="2", ATTRS{bInterfaceProtocol}=="01" SYMLINK+="kvm_keyboard_2" KERNEL=="event*", ENV{KVM_HUB}=="2", ATTRS{bInterfaceProtocol}=="02" SYMLINK+="kvm_mouse_2" # Default seat SUBSYSTEM=="input", TAG=="seat", ENV{ID_SEAT}=="" , ENV{ID_SEAT}="seat0" # set all tags accordingly ENV{ID_SEAT}!="", ENV{ID_INPUT.tags}+="$env{ID_SEAT}" TAG+="$env{ID_SEAT}" 

Соответствующая часть моего файла xorg.conf выглядит так:

 Section "ServerFlags" # Option "AutoAddDevices" "false" # Option "AutoEnableDevices" "false" Option "DefaultServerLayout" "Layout0" Option "AllowMouseOpenFail" "true" Option "Xinerama" "0" EndSection # --------------------------------------------------------------- # LAYOUT Section "ServerLayout" Identifier "Layout0" Screen "Screen0" MatchSeat "seat0" Option "Clone" "off" EndSection Section "ServerLayout" Identifier "Layout1" Screen "Screen1" MatchSeat "seat1" Option "Clone" "off" EndSection 

Как я уже сказал, я могу успешно запустить два независимых сеанса, используя следующий скрипт, но мне бы хотелось, чтобы это произошло автоматически при загрузке.

 #!/bin/bash set +x rm /etc/X11/xorg.conf cp ./xorg_independientes /etc/X11/xorg.conf # X (:0) systemctl stop gdm killall Xorg killall X systemctl restart gdm sleep 7 # X (:1) su - sit -c "startx /usr/bin/gnome-session -- :1 vt4 -layout Layout1 -seat seat1 -sharevts" & sleep 10 DISPLAY=:1 xhost + 

Мой подход будет устанавливать целевой уровень запуска по умолчанию на 4 (так что у него есть все, кроме графики), а затем помещать эти команды в скрипт где-то.

One Solution collect form web for “Начните два сервера X при загрузке на RHEL”

Начиная с RHEL6, они используют Upstart для запуска процессов при загрузке. Чтобы запустить два разных X-сервера, создайте 2 отдельных скрипта, чтобы запустить X-сервер: 0 и: 1.

start_colon_0.sh:

 #!/bin/sh su - sit -c "startx -- :0 vt4 -layout Layout0 -seat seat0 -sharevts" & 

start_colon_1.sh:

 #!/bin/sh su - sit -c "startx -- :1 vt4 -layout Layout1 -seat seat1 -sharevts" & 

В /etc/init создайте 2 файла конфигурации следующим образом:

x_server_0.conf:

 start on stopped rc RUNLEVEL=5 stop on starting rc RUNLEVEL=[!5] console output respawn exec start_colon_0.sh 

x_server_1.conf:

 start on stopped rc RUNLEVEL=5 stop on starting rc RUNLEVEL=[!5] console output respawn exec start_colon_1.sh 

Это приведет к запуску ваших скриптов при запуске при входе в уровень запуска 5.

См. Учебник Upstart

  • Как я могу сделать пакеты nvidia на Mint 17.3
  • Проблемы с колесиком мыши
  • xrandr и панорамирование дают случайные результаты
  • Избегайте гашения дисплея под X
  • GNOME распознает второй монитор, когда он подключен. Не работает ли Openbox?
  • Макросы клавиатуры для X и / или KDE
  • X-сервер, блокировка клавиатуры и мыши с поврежденным дисплеем
  • xorg.conf.d не загружается при запуске X во время стыковки
  • Крючок конфигурации Xorg для экрана без экрана
  • Общий способ отладки vmware мыши в X11
  • Xinerama используется не на всех экранах
  • xorg не обнаруживает мой AMD Radeon 8600 из-за «Недопустимый ATI BIOS от int10, адаптер не поддерживает VGA»
  • Linux и Unix - лучшая ОС в мире.