Старый друг - лучше новых двух (тут трется воскресший freenx-server)
Модераторы: dimbor, Модераторы разделов
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
ЗЫ: Может знаешь, что за параметр "strict" от клиента передается, но сейчас нигде не юзается?
Спасибо сказали:
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Опции поправил, попробуй.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
Тонкий твик канала. Насколько влияет в % и в каких условиях я не знаю как измерить.
Код: Выделить всё
int SetLimits()
{
//
// Check if the user requested strict
// control flow parameters.
//
if (useStrict == 1)
{
nxinfo << "Loop: LIMIT! Decreasing the token limit "
<< "to " << control -> TokenLimit / 2
<< " with option 'strict'.\n"
<< std::flush;
control -> TokenLimit /= 2;
}
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
Исходя из матов агентаdimbor писал: ↑19.02.2020 21:34
Это происходит вообще всегда, не только для рутлеса. Получившийся realtype засовывается агенту в options как type= А клиенту обратно отправляется 'NX> 704 Session cache: $type'. Это возвращается тот type, который пришел. Везде ложь, короче.
Расскажи плиз, что б мне тудой написать в свете моих откровений и твоих новых знаний.Добавлено (19.02.2020 21:37):
Для начала попробую эту хрень вообще извести.
Loop: WARNING! Unrecognized session type 'unix-desktop'. Assuming agent session.
Warning: Unrecognized session type 'unix-desktop'. Assuming agent session.
И тем что когда я передавал с клиента тип 'agent' или 'proxy' и кэш становился сохраняемым,
Агент нужно запускать с типом 'agent'. Тогда будет сохраняемый между сессиями кэш.
Для прокси имеет смысл делать раздельные кэши: кэши гнома и кде должны быть очень разные.
Ну а unix-desktop дополнительный, скажем так универсальный, он должен иметь нейтральный вид 'agent'.
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Ситуевина требует дальнейшего изучения, однако. Без твоих наработок, с unix-console кэш хотя и переписывается, но с убитым предварительно кэшом сессия стартует на ~0.5 с. дольше, чем с негрохнутым. Субъективно.
Добавлено (00:23):
А nxproxy в node_start_agent() запуститься шансов нихьт вообще никогда. Сейчас выясняю, какой лишенец этому поспособствовал и когда.-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
А вот может дашь мне идею, как табличку соорудить? Дело тривиальное, но теряюсь. Имеется основная таблица, где session_id это PRIMARY KEY. И будет вторая со столбцами: app_name, app_pid, session_id. Уникальные там только пиды, а выборки нужны будут по сочетанию session_id+app_name или по отдельности. Они, соответственно, не уникальны. Вот как бы сделать?
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
А ты что хочешь сделать? Если килять то тебе и пидов достаточно в основной таблице, разделенных запятыми.dimbor писал: ↑21.02.2020 14:15А вот может дашь мне идею, как табличку соорудить? Дело тривиальное, но теряюсь. Имеется основная таблица, где session_id это PRIMARY KEY. И будет вторая со столбцами: app_name, app_pid, session_id. Уникальные там только пиды, а выборки нужны будут по сочетанию session_id+app_name или по отдельности. Они, соответственно, не уникальны. Вот как бы сделать?
Есть разница в каком порядке их убивать?
Ну, предположим, самба и капс отдельно, но можно записать в основную "smb:3345,cups:8764".
Чем не решение?
В последних версиях sqlite3, для подобных случаев есть модуль json, но и без модуля такой вариант прокатит.
И я не понял зачем по отдельности. Так, по session_id, мы очень, очень быстро получаем все до кучи и уже потом разгребаем. Так ИМХО будет быстрее.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
Тут нужно как-то замерить объем трафика между клиентом и сервером.
Если при обновляемом/статическом кэше он меньше, то это хорошо и это работает.
А вот если больше или такой же, нужно звонить медведям

Субъективно тут не померять, +- температура по палате

-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Машинерия с башевскими сопроцессами для sqlite проверку практикой не выдерживает. Оно там все асинхронное, блин. И если потомкам дескрипторы протолкнуть получается, то потомки дисовнятся, паршивцы такие. Все бы ничего, но если папа решит завершиться вполне себе по надобности - база гавкается вместе с папой.
Эх, надоть отдельный процесс вешать, и к нему цепляться через пайпы/сокеты какие-нить. Не знаешь, делал кто?
Эх, надоть отдельный процесс вешать, и к нему цепляться через пайпы/сокеты какие-нить. Не знаешь, делал кто?
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Да там вариантов дофига и больше: мониторы, тэйлы всякие, пульс возможен, для rdp и vnc загогулины, со своим нравом каждая...
А самое главное, я там сейчас рутлесу сопоставления сделал чтобы сеанс рубился не по таймауту, а по завершению конкретных процессов. По идее, там можно в автомате эти процессы при старте набирать, а по их смерти сеанс пришибать.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
Я бы в Mailing list sqlite3 эту проблему бы отпостил, на адекватный запрос там дают достаточно адекватные ответы.
Может ключ какой (не знаю) поможет и т.д. и т.п.
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Ага. Припрусь туда, чудик с башем и тщательно сформулированной проблемой. А они мне по формуляру н-на! И правильно, проблема-то не у них, а в текущей архитектуре нашей вундервафли. Ключами никакими не лечится. Лечится переписыванием вундервафли. Причем под наши куцые случаи можно ее переписать хоть сейчас. Но поломать при этом все остальное. Больно она, падла, универсальная.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
Нашел кое что по теме: http://sqlite.1065341.n5.nabble.com/Using-sqlite3-exe-as-a-subprocess-td86667.html#a86721
Разработчики не рекомендуют так использовать, но по ссылке не плохая идея, как ловить ответы sqlite.
Возможно еще ключ -interactive (force interactive I/O) при запуске поможет стабилизировать поведение.
А случаем вот такой скриптик https://github.com/aze2201/bash_SQLite3_Server/blob/master/SQLite.exp не поможет?
Разработчики не рекомендуют так использовать, но по ссылке не плохая идея, как ловить ответы sqlite.
Возможно еще ключ -interactive (force interactive I/O) при запуске поможет стабилизировать поведение.
А случаем вот такой скриптик https://github.com/aze2201/bash_SQLite3_Server/blob/master/SQLite.exp не поможет?
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Возможно поможет. Но прежде разберусь с этим хрЕновым механизмом. А то у меня больно по русски накожено; любой результат - цепь взаимокомпенсирующих собственных косяков.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
ssh в зависимости пакета добавь.
P.S. проверил еще и на Ubuntu 18.04.04 - кроме ssh, вроде все без изъяна.
P.P.S. для xrdp бубен потребовался значительно больше
P.S. проверил еще и на Ubuntu 18.04.04 - кроме ssh, вроде все без изъяна.
P.P.S. для xrdp бубен потребовался значительно больше

-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Будет сделано, господин фельдмаршал. Тока чуть попозжа, как допишу следующую итерацию до работоспособного состояния. Бо только начинаю вникать в залежи костылей и граблей. Прикинь, nxserver - собака сутулая, сеанс сильно хитро держит. Если бы не животворящий $BASHPID, дальше бы искал мистические причины там происходящего.
При старте шелом nxserver поднимает свой инстанс для общения с nxnode посредством протокола, дисовнит его, а сам продолжает подслушивать клиента. Как услышит от него "999 bye", запускает netcat на порт прокси. При suspend прокся затыкается, netcat гибнет, и папа чинно завершается следом. А сынок висит, у него одного протопчен канал к ноде с агентом. При restore запущается новый nxserver-папа. Его новый сынок запускает новую ноду, командующую агенту воскреснуть. Вся эта бижутерия завершается, новый папа расчехляет новый netcat.
А первый сын висит и слушает ноду, статусы в базе проставляет.
Пока оставляю без внимания парные ноды с парными мониторами. С ними - позже.
И не надо говорить, что проще преписать к хреням. Надо разобраться, как оно работает. Вон x2гонщики переписали не разобравшись - порнография получилась. ;)
Теперь, по крайней мере, ясно, что это скулайт дох не вовремя.
ЗЫ: Это по большей части мысли вслух, чтобы было что почитать на свалке. И за документирование сойдет. Форум же об Аниме.
ЗЗЫ: И неполиткорректный slave mode был не зря выкинут, потому что открытые дескрипторы между процессами мы передавать не можем, если они не потомки.
ЗЗЗЫ: Оказывается, баш умеет tcp/udp сокеты "из коробки". И уже довольно давно. Даже netcat вроде можно выкинуть. Поизучаю ка я эту хрень.
При старте шелом nxserver поднимает свой инстанс для общения с nxnode посредством протокола, дисовнит его, а сам продолжает подслушивать клиента. Как услышит от него "999 bye", запускает netcat на порт прокси. При suspend прокся затыкается, netcat гибнет, и папа чинно завершается следом. А сынок висит, у него одного протопчен канал к ноде с агентом. При restore запущается новый nxserver-папа. Его новый сынок запускает новую ноду, командующую агенту воскреснуть. Вся эта бижутерия завершается, новый папа расчехляет новый netcat.
А первый сын висит и слушает ноду, статусы в базе проставляет.
Пока оставляю без внимания парные ноды с парными мониторами. С ними - позже.
И не надо говорить, что проще преписать к хреням. Надо разобраться, как оно работает. Вон x2гонщики переписали не разобравшись - порнография получилась. ;)
Теперь, по крайней мере, ясно, что это скулайт дох не вовремя.
ЗЫ: Это по большей части мысли вслух, чтобы было что почитать на свалке. И за документирование сойдет. Форум же об Аниме.
ЗЗЫ: И неполиткорректный slave mode был не зря выкинут, потому что открытые дескрипторы между процессами мы передавать не можем, если они не потомки.
ЗЗЗЫ: Оказывается, баш умеет tcp/udp сокеты "из коробки". И уже довольно давно. Даже netcat вроде можно выкинуть. Поизучаю ка я эту хрень.
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Как обычно под линуксом, баш умеет сокеты не совсем и в нетрадицонные назначения. Это если обтекаемо формулировать. Обтекаемо.
Зато нашел способ к левым процессам к дескрипторам цепляться. Вполне себе штатный. Правда на /proc/ завязан. Но в нашем стендовом случае это непринципиально. Ведь да?
Зато нашел способ к левым процессам к дескрипторам цепляться. Вполне себе штатный. Правда на /proc/ завязан. Но в нашем стендовом случае это непринципиально. Ведь да?
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
А чем плохо цепляться через proc? Надеюсь из пространства пользователя? Тогда не страшно.dimbor писал: ↑26.02.2020 10:55Как обычно под линуксом, баш умеет сокеты не совсем и в нетрадицонные назначения. Это если обтекаемо формулировать. Обтекаемо.
Зато нашел способ к левым процессам к дескрипторам цепляться. Вполне себе штатный. Правда на /proc/ завязан. Но в нашем стендовом случае это непринципиально. Ведь да?
Ты только не сильно увлекайся то. Заворачивать кучу изменений в одну итерацию - не есть хорошо.
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Да все там нормально с пространствами. Дык я стараюсь, чтоб оно хотя б через комит работало. В идеале после каждого.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
Просто оставлю это здесь...
Вот так конкуренты тестят: https://github.com/TurboVNC/turbovnc/issues/95
И в этом они правы на все 100!
Попробовал что-то подобное, видимо и тут можно слегка бустануть.
На тесте +-по палате, это как всегда, потому что нормальных тестов на скорость нет, но на glxgears на стандартных ~2600, а на zlib-ng ~2700 при универсальном линке ADSL.
P.S. zlib-ng, после " ./configure --zlib-compat", подменил либы, там где ldd был на libXcomp.so, но немного красивее было бы в LD_PRELOAD сунуть...
P.P.S. А есть еще реализация из Хрома: https://chromium.googlesource.com/chromium/src/+/HEAD/third_party/zlib
Забираем tgz,распаковываем и кидаем туда CMakeLists.txt
На подмену штатной библиотеки не работает, но в LD_PRELOAD в NXNODE работает (так что слегка гоню волну на оптимизации после jpeg-turbo).
Вот так конкуренты тестят: https://github.com/TurboVNC/turbovnc/issues/95
И в этом они правы на все 100!
Попробовал что-то подобное, видимо и тут можно слегка бустануть.
На тесте +-по палате, это как всегда, потому что нормальных тестов на скорость нет, но на glxgears на стандартных ~2600, а на zlib-ng ~2700 при универсальном линке ADSL.
P.S. zlib-ng, после " ./configure --zlib-compat", подменил либы, там где ldd был на libXcomp.so, но немного красивее было бы в LD_PRELOAD сунуть...
P.P.S. А есть еще реализация из Хрома: https://chromium.googlesource.com/chromium/src/+/HEAD/third_party/zlib
Забираем tgz,распаковываем и кидаем туда CMakeLists.txt
На подмену штатной библиотеки не работает, но в LD_PRELOAD в NXNODE работает (так что слегка гоню волну на оптимизации после jpeg-turbo).
Spoiler
cmake_minimum_required(VERSION 2.8)
set (PROJECT zchrome)
PROJECT( ${PROJECT} )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Ofast -flto -march=native")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast -flto -march=native")
set(CMAKE_LF_FLAGS "${CMAKE_LF_FLAGS} -flto -fuse-linker-plugin")
set(SRCS
adler32.c adler32_simd.c chromeconf.h compress.c cpu_features.c crc_folding.c crc32.c crc32.h crc32_simd.c
deflate.c fill_window_sse.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c inffast.c inflate.c inftrees.c
trees.c uncompr.c zutil.c
)
include_directories (
.
..
)
add_library(${PROJECT} SHARED ${SRCS})
set (PROJECT zchrome)
PROJECT( ${PROJECT} )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Ofast -flto -march=native")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast -flto -march=native")
set(CMAKE_LF_FLAGS "${CMAKE_LF_FLAGS} -flto -fuse-linker-plugin")
set(SRCS
adler32.c adler32_simd.c chromeconf.h compress.c cpu_features.c crc_folding.c crc32.c crc32.h crc32_simd.c
deflate.c fill_window_sse.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c inffast.c inflate.c inftrees.c
trees.c uncompr.c zutil.c
)
include_directories (
.
..
)
add_library(${PROJECT} SHARED ${SRCS})
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Я тут тоже двигаюсь. Медленно и печально, как червяк за похоронной процессией. Да еще и оффлайн отвлекает. Но все же постиг цепочку этих безумных форков. И своих добавил. Долбиться в дескрипторы процессов оказалось легче легкого, главное давки не создавать. Вот думаю, чем продолжить: nxnode обскулайтить, или expect похерить. Второе убыстрит, а первое - избавит от тебе не нравящейся ругани в логах об отключении неподключенного. Первое нудное, второе - творческое.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
ИМХО: Отдохни от нудных раскопок, твои творческие решения тоже все ускоряют и ускоряют...
Скоро прогресс-бар в OpenNX можно будет упразднить
Кстати, возможно сессии в sqlite стоит разбить по идентичным таблицам по статусу сессии.
Запросы чуток сложнее будут, но и быстрее, при большой базе завершенных сессий.
В принципе достаточно завершенные в отдельную таблицу кинуть... или даже в отдельную базу для производительности.
Завершенные сессии же только в "nxserver --history"
Скоро прогресс-бар в OpenNX можно будет упразднить

Код: Выделить всё
17:21:18.150318 go2nx: elapsed time 1.00610657s
Запросы чуток сложнее будут, но и быстрее, при большой базе завершенных сессий.
В принципе достаточно завершенные в отдельную таблицу кинуть... или даже в отдельную базу для производительности.
Завершенные сессии же только в "nxserver --history"
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Имеется текущая проблемка, о которой не отказался услышать бы взвешенное мнение. Сейчас у нас дофигища методов авторизации. USERMODE_AUTHENTICATION с негодованием отметаю. Первую ступень - ключик на сервер иметь, думаю, надо. Дальше идут SSH_AUTHENTICATION и PASSDB_AUTHENTICATION. Раньше думал, SSH - способ растащить nxserver и nxnode по разным хостам (в принципе возможно, но зачем?). Присмотревшись узрел, что он - побочный выкидыш от PASSDB. А этот хендмейд хоть юзерский пароль у себя и проверяет, все равно потом ломится к юзеру по ssh, по ключу, общему для всех юзеров. Собственно, это были причины, по которым остановился когдась на шустром SU. Интуитивно ;)
Теперь про SU_AUTHENTICATION: Так просто от слонопотамного expect не избавиться. (И на tcl весь фриэныкс переписывать не буду - втухну на полгода.) Параноидальному su нужен пароль только в терминал. Можно заменить expect на empty и написать в nxserver один красивый КА на все случаи жизни. Тут я начал читать интернеты, узнал, что su - ископаемое говно мамонта. А вся пацанва уже sudo вовсю. Еще ему можно пароль пропихнуть через ASKPASS вроде. И даже смутно помню, чем-то таким в своей карьере я уже занимался.
Остальные методы можно будет оставить в неприкосновенности при таком раскладе. Но может оказаться, что чего-то я не учел.
Теперь про SU_AUTHENTICATION: Так просто от слонопотамного expect не избавиться. (И на tcl весь фриэныкс переписывать не буду - втухну на полгода.) Параноидальному su нужен пароль только в терминал. Можно заменить expect на empty и написать в nxserver один красивый КА на все случаи жизни. Тут я начал читать интернеты, узнал, что su - ископаемое говно мамонта. А вся пацанва уже sudo вовсю. Еще ему можно пароль пропихнуть через ASKPASS вроде. И даже смутно помню, чем-то таким в своей карьере я уже занимался.
Остальные методы можно будет оставить в неприкосновенности при таком раскладе. Но может оказаться, что чего-то я не учел.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
А ты сюда смотрел? https://github.com/Etersoft/nxssh
Мне это вся условная защита "по барабану", изнутри 123 как пароль сойдет, а вот снаружи OpenVPN или (стал переходить на) Wireguard.
Мне это вся условная защита "по барабану", изнутри 123 как пароль сойдет, а вот снаружи OpenVPN или (стал переходить на) Wireguard.
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Попробуй твикс! Выкинул nxnode-login с expect. Запузырил суровую sudo аутентификацию nx-user. Получился фриэныкс на стероидах. Только под убунтой не проверял, спать хочу. Есть сомнения, что запустится. Весь интернет в судо параметры пихает со слипом после пароля. А у меня без получилось. Вот хочется узнать, не случайно ли. В /etc/sudoers.d файлик дополнился. Без него уж точно не запустится.
Ругань на неправильный пароль пользователя пока не возвращал. По идее, правильно сделать - труд небольшой.
Там сейчас другая беда: когда шар больше одной, толкаются в канале, собаки, и валят агента. Опять придется с локфайлами извращаться.
Ругань на неправильный пароль пользователя пока не возвращал. По идее, правильно сделать - труд небольшой.
Там сейчас другая беда: когда шар больше одной, толкаются в канале, собаки, и валят агента. Опять придется с локфайлами извращаться.
Ну это ж клиентское болото. От номашин в основном. А проблемы негров шерифа не волнуют. На сервере секьюрность блюсти надоть. Нажил много седых волос в разных местах, чтоб не дай Бог не запихнуть пароль в параметры командной строки и все такое.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
Под юбунтой стоит учесть что учетка админа не прописана в группе users. Во всяком случае в 19.04. Добавил, завелось.
Возможно стоит дописать в todo: "nxserver --test user pass"
09:58:28.114105 go2nx: elapsed time 677.619777ms
Да уж, действительно на стероидах

Кажется быстрее уже некуда... Меньше секунды! Не ожидал такого

Пора проект переименовать в FreeNX_S(teroid)E(dition)

И на неверного пользователя тоже ругань не забудь.
Spoiler
09:57:05.633953 nxssh: (StdIn) NX> 101 User: addm_not_found
09:57:05.634007 nxssh: (StdOut) Send password: ***
09:57:05.635200 nxssh: (StdIn) NX> 102 Password:
09:57:05.639396 nxssh: (StdIn) NX> 103 Welcome to: addm-VirtualBox user: addm_not_found
09:57:05.634007 nxssh: (StdOut) Send password: ***
09:57:05.635200 nxssh: (StdIn) NX> 102 Password:
09:57:05.639396 nxssh: (StdIn) NX> 103 Welcome to: addm-VirtualBox user: addm_not_found
Spoiler
root@addm-VirtualBox:/var/lib/nxserver/home# nxserver --list
NX> 100 NXSERVER - Version 3.5.0-0.2-CE OS (GPL, using backend: 3.5.99.23)
NX> 127 Sessions list:
Server Display Username Remote IP Session ID
------ ------- --------------- --------------- --------------------------------
NX> 999 Bye
root@addm-VirtualBox:/var/lib/nxserver/home# nxserver --cleanup
NX> 100 NXSERVER - Version 3.5.0-0.2-CE OS (GPL, using backend: 3.5.99.23)
NX> 500 Error: No running sessions found.
NX> 999 Bye
/usr/share/freenx-server/nxfuncs: строка 91: /proc/5991/fd/0: Нет такого файла или каталога
root@addm-VirtualBox:/var/lib/nxserver/home#
NX> 100 NXSERVER - Version 3.5.0-0.2-CE OS (GPL, using backend: 3.5.99.23)
NX> 127 Sessions list:
Server Display Username Remote IP Session ID
------ ------- --------------- --------------- --------------------------------
NX> 999 Bye
root@addm-VirtualBox:/var/lib/nxserver/home# nxserver --cleanup
NX> 100 NXSERVER - Version 3.5.0-0.2-CE OS (GPL, using backend: 3.5.99.23)
NX> 500 Error: No running sessions found.
NX> 999 Bye
/usr/share/freenx-server/nxfuncs: строка 91: /proc/5991/fd/0: Нет такого файла или каталога
root@addm-VirtualBox:/var/lib/nxserver/home#
Ну да, но ты патчи посмотри. И этот клиент значительно более свежий и, насколько я понимаю, поддерживает больше возможностей аутентификации. Правда использовать их получится только в OpenNX.
А у тебя есть комп на Intel? Попробуй cygXcomp_turbo, не без труда, но собрал (это замена для прошлой сборки, тоже со всякими стероидами).
На моем, стареньком AMD64, SSE2 если не медленнее, то точно не быстрее, это давно известный факт, а на Intel может быть разница в 6%.
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Так оно туточки. Вот ты и дописал.
А давай ка письками померяемся. Твоей вундервафли не имею, поэтому цепляюсь пока opennx с линукса. От первой записи в nxserver.log до последней в nxnode-*.log проходит 0.4 с копейками секунды. А у тебя?
Все будет просто, если клиентский обработчик проглотит после этого "велкам ту" последующее "NX> 404 ERROR: wrong password or login". Нет, тогда ой! - Заново переписывать nxserver, или терять много десятых на предварительном запуске nxnode --check.
Вот же ж, блин горелый! В баше продолжаются чудеса с командой exit. Если ее запускать в не отвязанном нефоновом чилдренке-сабшелле, она от фазы луны зависит. Когда завершает весь компот как задумано, а иногда - нет. Пока не понял, в чем суть.
Они у меня все на штеудах исторически, кроме отчужденных. Попробую, но чем попугаи измерять, в душе не чую.
Добавлено (18:50):
Все только начинается, на самом деле: еще пару-тройку десятых можно будет отыграть на конфигах и базе для nxnode. А если хорошо упереться, можно выйти в минус ;)Добавлено (19:46):
Хотя придумал кажется. Накрайняк буду сначала в судо без чекания пароль загонять. А на втором этапе - без пароля. Там же срок действия можно поставить.-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
cleanup поправил вроде.
Ругань на юзер+пасс вернул почти традиционным способом. Ноду лишний раз не пускаю. У sudo есть validate. Его и использовал. Скорость соединения если и проседает, то на децальный децл.
Как уже говорил, есть шальная идея, вместо netcat канал держать башевским встроенным сокетом. Рубить его по SIGPIPE, перекуривать в ожидании - слипом. Может получиться нарост удоев, т.е. стабильности этого самого канала. А может получиться порнография. Впрочем, не привыкать.
Ругань на юзер+пасс вернул почти традиционным способом. Ноду лишний раз не пускаю. У sudo есть validate. Его и использовал. Скорость соединения если и проседает, то на децальный децл.
Как уже говорил, есть шальная идея, вместо netcat канал держать башевским встроенным сокетом. Рубить его по SIGPIPE, перекуривать в ожидании - слипом. Может получиться нарост удоев, т.е. стабильности этого самого канала. А может получиться порнография. Впрочем, не привыкать.
-
- Сообщения: 614
- ОС: Гигтег+Цшт32
Re: Старый друг - лучше новых двух
glxgears на adsl
Но степени сжатия странноваты, честно говоря, modem и isdn упираются в проц и проталкивают <500кбпс, а adsl резко прыгает вперед и у меня упирается уже в канал 1.7мбпс. Как то не очень понятна и логична эта стратегия...
P.S. Исправления сработали. Как думаешь, когда на продакшн можно будет запускать?
Ну, я в принципе уже запустил, но как резерв для xRDP и для тощих каналов, но там контора совсем новая и пользоваться этим (пока?) будет полтора землекопа.
-
- Ведущий рубрики
- Сообщения: 1506
- Статус: Подвинутый участник
Re: Старый друг - лучше новых двух
Погонял glxgears. Тупой вопрос: откель ты биты в секунду берешь? FPS на размеры картинки умножаешь по секретной формуле? Пока заметил только просадку этого самого FPS на треть с новой библиотекой в режиме modem. В остальных - однофигственно. Везде - пик на adsl, да. Или тесты нужны с настоящего клиента, в смысле со своим невиртуальным процом и дисплеем?
Продакшен, символизируемый 1.0.1 в версии пакетов, у себя хочу приурочить к окончательному устаканиванию архитектуры. Для этого надоть сделать sqlite базу для юзера, далее подключить таки конфиги. Я там реально много кода написал и все задействовать его не могу никак. Танцор плохой, ну хоть пока к отцовству нет претензий.
Все цепляется одно за другое: к ноде конфиги цеплять смысла не имеет, пока оно само в каталогах ковыряется. А там можно сделать красиво и коротко. Вот сейчас вроде разобрался с универсальным запуском/завершением своей dbe для sqlite. Теперь буду делать usessions.sq3 для юзера. Ты мне лучше все-таки расскажи про правильную табличку session_id, app_name, pid. А то я там ща понавояю. А оно реально надо. Больно вариантов много - столбцов на все не хватит.
С несколькими шарами еще затык этот: сейчас можно воткнуть костыль, который потом переписывать. А там и так много переписывать.
Продакшен, символизируемый 1.0.1 в версии пакетов, у себя хочу приурочить к окончательному устаканиванию архитектуры. Для этого надоть сделать sqlite базу для юзера, далее подключить таки конфиги. Я там реально много кода написал и все задействовать его не могу никак. Танцор плохой, ну хоть пока к отцовству нет претензий.
Все цепляется одно за другое: к ноде конфиги цеплять смысла не имеет, пока оно само в каталогах ковыряется. А там можно сделать красиво и коротко. Вот сейчас вроде разобрался с универсальным запуском/завершением своей dbe для sqlite. Теперь буду делать usessions.sq3 для юзера. Ты мне лучше все-таки расскажи про правильную табличку session_id, app_name, pid. А то я там ща понавояю. А оно реально надо. Больно вариантов много - столбцов на все не хватит.
С несколькими шарами еще затык этот: сейчас можно воткнуть костыль, который потом переписывать. А там и так много переписывать.