Как я могу выполнить отдельное X сессий на другом физическом дисплее?

Хотя coretuils с версии 7.0 включает команду тайм-аута, Вы упомянули некоторые среды, которые не будут иметь его. К счастью, pixelbeat.org записали сценарий тайм-аута sh.

Я использовал его прежде несколько раз, и это работает очень хорошо.

http://www.pixelbeat.org/scripts/timeout (Примечание: сценарий ниже был немного изменен от того на pixelbeat.org, см. комментарии ниже этого ответа.)

#!/bin/sh

# Execute a command with a timeout

# Author:
#    http://www.pixelbeat.org/
# Notes:
#    Note there is a timeout command packaged with coreutils since v7.0
#    If the timeout occurs the exit status is 124.
#    There is an asynchronous (and buggy) equivalent of this
#    script packaged with bash (under /usr/share/doc/ in my distro),
#    which I only noticed after writing this.
#    I noticed later again that there is a C equivalent of this packaged
#    with satan by Wietse Venema, and copied to forensics by Dan Farmer.
# Changes:
#    V1.0, Nov  3 2006, Initial release
#    V1.1, Nov 20 2007, Brad Greenlee 
#                       Make more portable by using the 'CHLD'
#                       signal spec rather than 17.
#    V1.3, Oct 29 2009, Ján Sáreník 
#                       Even though this runs under dash,ksh etc.
#                       it doesn't actually timeout. So enforce bash for now.
#                       Also change exit on timeout from 128 to 124
#                       to match coreutils.
#    V2.0, Oct 30 2009, Ján Sáreník 
#                       Rewritten to cover compatibility with other
#                       Bourne shell implementations (pdksh, dash)

if [ "$#" -lt "2" ]; then
    echo "Usage:   `basename $0` timeout_in_seconds command" >&2
    echo "Example: `basename $0` 2 sleep 3 || echo timeout" >&2
    exit 1
fi

cleanup()
{
    trap - ALRM               #reset handler to default
    kill -ALRM $a 2>/dev/null #stop timer subshell if running
    kill $! 2>/dev/null &&    #kill last job
      exit 124                #exit with 124 if it was running
}

watchit()
{
    trap "cleanup" ALRM
    sleep $1& wait
    kill -ALRM $$
}

watchit $1& a=$!         #start the timeout
shift                    #first param was timeout for sleep
trap "cleanup" ALRM INT  #cleanup after timeout
"$@" < /dev/tty & wait $!; RET=$?    #start the job wait for it and save its return value
kill -ALRM $a            #send ALRM signal to watchit
wait $a                  #wait for watchit to finish cleanup
exit $RET                #return the value

14
24.08.2011, 22:23
2 ответа

То, что Вы хотите, является мультиместом конфигурация Xxorg. Я не знаю, какой дистрибутив Вы используете, таким образом, я просто свяжусь с записью Wiki Xorg. X хорошо подходит для этого, с тех пор 20 + несколько лет назад, многие учреждения сделали это со всеми их машинами Unix.

Вы не сможете использовать ту же клавиатуру и мышь для обоих дисплеев, все же.

7
27.01.2020, 19:51
  • 1
    , я отредактировал вопрос выше для включения моего дистрибутива: Linux Mint 11/Ubuntu 11,04 64 бита. Я смогу при наименьшем количестве использования терминал для взаимодействия через интерфейс с другим дисплеем? –  Naftuli Kay 24.08.2011, 22:25
  • 2
    Wiki Xorg связывается с этой страницей Ubuntu: help.ubuntu.com/community/MultiseatX я не уверен, о чем Вы думаете, когда Вы упоминаете, что соединили интерфейсом с другим дисплеем, но если Вы хотите управлять VLC от своего другого X-сервера, Вы могли бы использовать интерфейс управления HTTP VLC (или другой интерфейс управления VLC): videolan.org/doc/play-howto/en/ch04.html#id590873 –  Klox 24.08.2011, 22:51
  • 3
    Так, по существу export DISPLAY=:2 && vlc myfile запустил бы VLC на другом экране, затем я мог использовать плагин HTTP для управления им. Имеет смысл. Я буду видеть, могу ли я получить что-то работающее здесь. –  Naftuli Kay 24.08.2011, 23:16
  • 4
    Не верный по проблеме клавиатуры и мыши. Можно использовать synergy использовать ту же клавиатуру и мышь через мультиместо X дисплеев или на той же машине или на даже сетевых машинах. положительная сторона –  Caleb 24.08.2011, 23:55
  • 5
    @TK: Короче управляйте, чтобы также сделал то, что Вы хотите без побочного эффекта, который Вы, вероятно, не хотите: DISPLAY=:2 vlc myfile. Это заменяет переменную ДИСПЛЕЯ для vlc управляйте только, не топая на переменной ДИСПЛЕЯ стартовой оболочки. Это еще более полезно, если Вы фон VLC, таким образом, можно продолжать использовать то окно терминала. –  Warren Young 25.08.2011, 00:14

Я просто записал быструю небольшую подсказку относительно того, как настроить и выполнить отдельный xsessions на 2 мониторах. Проверьте его http://www.nu2upc.com/linux-tips/configuring-dual-displays/

Сначала позвольте мне объяснить, что я собираюсь выполнить, чтобы видеть, удовлетворяет ли это Ваши потребности. Я собираюсь быть выполнением 2 мониторов, 1 соединен через VGA и другой DVI. Монитор VGA должен быть подключен к экрану 0 как монитор 0 на xsession 0 и DVI, находящемся на 1.

Проблема, с которой я столкнулся, состоит в том, что система автоматически присваивала 0 монитору DVI поэтому не предоставление мне результаты, которых я требовал.

Решение состояло в том, чтобы просто отключить монитор DVI, перезагрузку и запуститься с чистого xorg.conf файла. Я открыл настройки Nvidia, проверенные, чтобы видеть, что мой монитор VGA был настроен путем, я хотел, затем я включил свой монитор DVI, “X Server Display Configuration”, на который нажимают, затем “Обнаруживают Дисплеи”, и он нашел монитор DVI. Я затем установил монитор DVI для права моего монитора VGA и "Configure", на который нажимают, и выбранный “Отдельный, X Экранов” затем гарантировали, что все другие настройки состояли в том, как мне нравится. Я нажал на “Save X Configuration File” и сказал да для слияния изменений. Затем я перезагрузил свою систему. и альт! У меня теперь есть свои 2 дисплея, выполняющие каждого в отдельном xsessions!

4
27.01.2020, 19:51

Теги

Похожие вопросы