Всякий раз, когда я запускаю X-сервер Cygwin с помощью ссылки «XWin Server» в моем меню «Пуск» или при запуске startxwin
из оболочки Cygwin, автоматически появляется окно xterm, которое мне ни нужно, ни нужно.
Как мне этого избежать?
(Вопрос вдохновлен этот комментарий по Стейн Vanpoucke над на переполнение стека)
exec sleep infinity
как показано здесь: x.cygwin.com/docs/faq/cygwin-x-faq.html#q-startxwinrc-exitОБНОВЛЕНИЕ : Этот ответ устарел. Для получения актуального ответа см . Ответ пользователя 551570 ниже .
От
man startxwin
:Таким образом, чтобы избежать запуска какой-либо программы при запуске X-сервера, вам нужен пустой
.startxwinrc
файл. Просто запустите следующую команду Cygwin:источник
.startxwinrc
результатов приводит к немедленному исчезновению X-сервера. :-(По состоянию на ноябрь 2014 года последние версии
startxwin
используютсяxinit
для запуска сервера Cygwin / X, который фактически называетсяXWin.exe
. Процесс идет примерно так:startxwin
startxwin
создает новый.Xauthority
файл и один называется.serverauth.1234
(где1234
меняется каждый раз, когда вы запускаете X)startxwin
устанавливает некоторые параметры клиента и сервераstartxwin
вызовыxinit
с параметрами клиента и сервера, включая некоторые необязательные сценарии оболочки и ссылку на файл аутентификации.xinit
запускает X-сервер, запускает некоторые из сценариев rcxinit
запускает клиентский (обычноxterm
) или клиентский скрипт rc. Мы хотим избежать этогоxinit
завершает работу, X-сервер выключается. Если мы избегаем шаг 6, мы также должны избегать этогоМожно запустить
XWin.exe
непосредственно из логина оболочки Bash, без окружающих задач , которыеstartxwin
иxinit
выполняют. Основным преимуществом этого является то, что он ведет себя так, как мы хотим: X-сервер запускается и продолжает работать. К сожалению, поскольку.Xauthority
во время запуска файла не передается, ваш X-сервер разрешает подключаться к нему любому локальному процессу, что небезопасно.К счастью
xinit
, большинство вещей мы не хотим. Есть быстрый взлом, который обходит,xinit
но сохраняет оставшиеся элементыstartxwin
, связанные с самим сервером.TL; DR: В
startxwin
, есть линия в нижней части, который гласит:Измените эту строку на:
Отныне
startxwin
скрипт будет вызыватьXWin.exe
напрямую, а не вызыватьxinit
. Очевидно, это отключит любые клиентские сценарии rc, но мы не хотели, чтобы они были в первую очередь. Это также означает, что X будет продолжать работать без необходимости в клиентском процессе, чтобы поддерживать его (т.е. неxinit
убивать).источник
Я сделал привычку запускать Cygwin X с помощью startxwin (.exe). Мой файл .startxwinrc выглядит следующим образом:
Пока это работает. Единственная ошибка, которую я получаю, касается отображения, все еще «открытого» другим X-процессом. Эта ошибка указывает определенный файл, который X-сервер генерирует по умолчанию для каждого сеанса. Люди Cygwin знают, что он не удаляется после завершения сеанса.
Поэтому я написал псевдоним, чтобы "вылечить", что:
Я помещаю ту же самую строку - часть между кавычками, во всяком случае - в мои файлы .bashrc и .bash_profile на случай, если я забуду сделать это сам.
НТН.
BZT
источник