Могу ли я перезапустить X, не закрывая все приложения в моем текущем сеансе?

11

Я обнаружил, что когда я хочу изменить метод ввода, я должен перезапустить X. Но я не хочу закрывать все приложения. Как это сделать?

Сэм
источник

Ответы:

9

Ты не можешь

Что вы можете сделать, это начать новый сеанс X на другом tty (экране), который должен оставить приложения, запущенные в первом сеансе, без изменений. (Это то, как некоторые диспетчеры дисплеев [например, KDM] разрешают множественные входы разных пользователей с использованием одного и того же физического дисплея / клавиатуры.)

Источник: http://www.linuxquestions.org/questions/linux-desktop-74/how-to-restart-x-without-having-to-close-connected-applications-689430/

Митч
источник
1
Не могли бы вы дать команду сделать это в этом ответе? Было бы неплохо не гуглить :)
Адитья МП
2

Приложения, запущенные поверх X, будут убиты, если вы перезапустите X. Этого нельзя избежать.

Frantique
источник
Кто-нибудь знает, какой сигнал эти приложения получают, когда X прекращается? И зависит ли это от того, какой сигнал завершает X? Я могу себе представить причины, по которым система должна быть спроектирована таким образом, чтобы они получали SIGHUP, SIGINT, SIGTERM или SIGKILL (или некоторую их комбинацию, разделенную интервалом времени, в течение которого приложение может выполнять свою собственную очистку).
Элия ​​Каган
Элия: это не совсем сигнал: сокет, через который X-клиенты (ваши приложения) обмениваются данными с Xorg, закрыт. Это может привести к тому, что клиент получит SIGPIPE при следующей записи в сокет или ошибка записи. Конечно, приложения могут выполнять очистку здесь.
Джереми Керр
Можно ли было запустить какой-нибудь прокси перед сокетом Xorg, чтобы перенаправить трафик сокета во вновь перезапущенный X?
Микко Ранталайнен
2
@MikkoRantalainen, если вам удастся заставить его работать, xmove сделает именно это. Проблема в том, что он не поддерживается в течение 14 лет. Вероятно, это также можно сделать с помощью Xpra , которая все еще поддерживается, но ее основное назначение совершенно иное, поэтому для этого потребуется возиться.
franga2000