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

Предположим, у меня есть оконный менеджер Blackbox, работающий на двух разных X-дисплеях, например :0.0 и :1.0 запущенные из tty1 и tty2 соответственно. С терминала (эмулятора), как мне выйти (убить) процесс Blackbox, который использует текущий дисплей X? Команда killall blackbox не подходит, поскольку она завершает оба сеанса.

3 Solutions collect form web for “Как выйти из диспетчера окон на текущем дисплее X?”

ps e перечисляет процессы с их командной строкой вместе с (начальными?) переменными среды. фильтров, соответствующих либо командной строке -display :0 либо среде DISPLAY=:0 . Я считаю, что найти wm в вопросе, запускается ли он вручную или с помощью какого-либо скрипта сеанса. то мы можем просто kill его.


Я слышал, что существуют разные версии ps, описанный выше стиль командной строки (bsd?) работает на моей машине с debian procps-ng. при необходимости обратитесь к руководству.


основанный на наблюдении, что wm является владельцем корневого окна , эта страница вики-вики имеет мини-сечение с подходом xprop -root _NET_WM_PID чтобы найти pid. но это не работает для меня, по-видимому, потому что это только добровольно для x окон, чтобы обеспечить это свойство, и мой wm, случается, не следует этому способу.

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

Если вы определили tty, где вы выгрузили черный ящик, ps -t tty1 процессы, запущенные с этого терминала (при условии, что tty1 – это тот, из которого вы запустили Openbox, который хотите убить), тогда вы можете идентифицировать и убить один, который вы хотите.

Вот решение, вдохновленное ответом soubunmei:

 #!/bin/sh ActiveWindowManagerPID() { local windowManager="$1" local windowManagerPIDs="$(pidof "$windowManager")" local displayNumber="$(echo $DISPLAY \ | awk 'BEGIN { FS = "[:.]" } { print $2 }')" ps e -p "$windowManagerPIDs" \ | awk -vn="$displayNumber" \ '$0 ~ " DISPLAY=:" n "[\n .]" { print $1 }' } kill "$(ActiveWindowManagerPID blackbox)" 
  • Как отображать изображение на удаленной машине linux через ssh
  • Параметр уровня ядра Debian - xorg не запускается с драйверами NVIDIA
  • Вернитесь в графический интерфейс с текстовой консоли со многими серверами X11?
  • CentOS7: удалить nvidia-x11-drv-340xx хочет удалить весь xorg
  • X-рендеринг текста уродливый, если какой-либо не общий драйвер используется
  • Пересылка X11 через SSH
  • Как использовать три монитора на ноутбуке?
  • GNOME распознает второй монитор, когда он подключен. Не работает ли Openbox?
  • Как заменить мои правила udev на клавиатуре и мыши на xorg.conf.d?
  • Что замерзает мой рабочий стол каждую секунду (например, часовой механизм)?
  • Ноутбук Manjaro внезапно не загрузит среду рабочего стола Xfce. Как загрузиться нормально?
  • Linux и Unix - лучшая ОС в мире.