Profile

coolwolf0: (Default)
coolwolf0

March 2026

S M T W T F S
12 34567
8 91011121314
151617 181920 21
22232425262728
293031    

Custom Text

Наш (уже бывший) украинский контрактор поставил одну очень полезную систему тестирования на выделенный для этого линуксовый хост. Мы раньше пытались работать с этой системой через Винду, но выходило как-то криво. Однако для отладки понадобилось подглядывать за процессом тестирования, при том что система работала исключительно безголовым сервером. Естественно, как любое юниксовое приложение, она могла посылать свою "морду" на указанный в $DISPLAY X-сервер. Вот только какой? Я было предложил выделить чей-то юниксовый десктоп в качестве "песочницы", но это ужасно неудобно: работаешь так и вдруг у тебя на экране начинает бежать чей-то тест. Короче говоря, было решено запустить выделенный VNC-сервер.

Вы не представляете, как давно я последний раз запускал Иксы. Обычно эту задачу штатно решали корпоративные айтишники, но тут надо было сделать нечто штучное. Попытка запустить известные команды от имени локального рута привела к кромешным ошибкам и чёрному-пречёрному десктопу в VNC-вьюере. Разговор с умными людьми помог осознать: у локального рута не смонтирована домашняя директория, поэтому бедному VNC и кедам некуда складывать свои конфиги. Ну, подумал я радостно, наконец-то создам что-то от рута! И ... создал. Сначала - домашнюю директорию нового аккаунта. Потом - сам аккаунт:

mkdir -p /var/home/vncuser
useradd vncuser -m
passwd vncuser


Создав аккаунт и пароль, настроил права в домашней директории:

chown vncuser /var/home/vncuser
chgrp vncuser /var/home/vncuser


Теперь можно привязать аккаунт и директорию:

usermod -m -d /var/home/vncuser vncuser


Всё, начинаем строить инфрастуктуру для иксов:

sudo -u vncuser mkdir -p /var/home/vncuser/.vnc
sudo -u vncuser vncpasswd


После этого в домашнюю директорию был скопирован профайл xstartup и запущен VNC (не спрашивайте, почему на втором дисплее и зачем файл хранится в /tmp, это была какая-то итерация после неудачных попыток)

sudo -u vncuser Xvnc :2 PasswordFile=/var/home/vncuser/.vnc/passwd -auth /tmp/.Xauthority


Собственно, вот и вся история. Кеды поднялись согласно сценарию в xstartup, резолюцию экрана настроил при помощи xrandr, а остальное заработало как обычно. Десктоп, работа с клипбордом, иксовый терминал, всё пашет (а почему бы и нет?). Воодушевлённый, переписал свой старый ланчер с Перла/Tk на Пайтон/Tkinter - тоже заработал как часы. Эх, молодость, чего мы только не вытворяли в своё время...

Вы скажете, ну сделал чувак пару стандартных телодвижений, которые можно нагуглить на раз-два. А теперь представьте себе, какие надо сделать телодвижения, чтобы с виндового десктопа приложение открыло окно ... на другом компьютере? Или изменить процесс загрузки десктопа (включая выбор самой оконной системы)? Или запустить на одном компьютере несколько независимых десктопов?

PS: система тестирования оказалась не без дефектов: падая она периодически создаёт core-дамп в текущей директории. Таким образом ей довольно быстро удалось загадить свой локальный диск до 100%. Пришлось дописать парочку crontab, чтобы выносили за ней какахи.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Expand Cut Tags

No cut tags

Style Credit