Начните два сервера 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 (так что у него есть все, кроме графики), а затем помещать эти команды в скрипт где-то.

  • xrandr обнаруживает усилитель как монитор
  • как переехать в путь из xorg в antergos gnome?
  • Отключить мышь (не тачпад!) В Xorg во время простоя
  • Конфигурация Dell Precision Trackpoint Odd
  • Настройте 3 экрана / двойные графические / повернутые экраны Ubuntu 15.10
  • Как я могу управлять сверхчувствительной сенсорной панелью?
  • Как сделать команды xinput постоянными
  • Как я могу запустить Xromium в полноэкранном режиме под X?
  • 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

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