LINUX.ORG.RU
решено ФорумAdmin

Alt Linux ```startx``` команда и работа в одном ```tty```.

 , ,


0

2

В Alt Linux так запилено, что если в tty1 выполнить startx то иксы в tty3 поднимутся. С одной стороны это как бы даже удобно - можно в реальном времени просматривать лог который идет в tty1, но с другой - нафига этот огород нужен и systemctl reboot/poweroff толком не работают пока руками конфиг polkit не поправишь и правка эта работает до первого обновления polkit - после чего конфиг будет перезаписан на дефолтный и нужно будет править опять. Собственно вопрос в том как это распилить и сделать по обычному - так что бы startx из tty1 в tty1 запускался?

P.S. с wayland такого не происходит и labwc запускается в том же tty.

Перемещено hobbit из general

★★★★★

Последнее исправление: amd_amd (всего исправлений: 2)
Ответ на: комментарий от Aceler

:-/

да ты - ты же здесь главный альтовод-затейник Как выключить/перезагрузить Alt Linux из иксов? сходу догадался что startx командуется в одном tty, а запускается в другом и по этому systemctl reboot/poweroff не работает, а дальше я уже шел у тебя на поводу.

amd_amd ★★★★★
() автор топика

Такая схема некоторое время назад была дефолтом вообще везде. Так что скорее всего они специально ничего не делали, а просто оставили традиционное поведение.

systemctl reboot/poweroff

Каким боком оно зависит от tty? Мда, системг как всегда. Не думал избавиться от этого поделия агента микрософта?

Есть кстати более просто способ - ctrl-alt-del и кнопка на системном блоке, они точно никаких tty не требуют.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Каким боком оно зависит от tty?

происходит следущее: команда startx выполняется в tty1, а иксы поднимаются в tty3 и systemctl reboot/poweroff выполненые в этом tty3 на tty1 не распространяются и ничего не происходит - иксы не гаснут, машина не перезагружается/выключается.

amd_amd ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Странный кейс вручную запускать иксы.

Смотря в каких случаях. К примеру в процессе экспериментов с железом и/или низкоуровневой поддержкой для него - вполне обычное дело. Кто более-менее часто такими вещами занимается - тем актуально.

watchcat382
()
Ответ на: комментарий от amd_amd

сколько себя помню всегда так делаю

Я думал я один такой остался еще с тех времен когда памяти в компах было мало и иксы запускали только для работы с чем-нибудь безальтернативно требующим графики. А когда можно было обойтись то текстовой консолью пользовались. К примеру почту в текстовом mutt читали. С тех пор случаи необходимости текстовой консоли сильно сократились, памяти стало много, графика перестала тормозить,а привычка запускать искы через startx - осталась.

watchcat382
()
Ответ на: комментарий от firkax

Выключение компа и не должно ни на какие tty распространяться, оно выключает всю систему целиком.

Только под рутом. А чтобы systemd позволил юзеру выключить комп, нужно поприседать.

bread
()
Ответ на: комментарий от watchcat382

привычка запускать искы через startx - осталась

У меня тоже. Это ещё удобно тем, что можно ключики для иксов прокидывать и перенаправлять выхлоп куда надо (обычно в /dev/null) без всяких конфигов. Ну и если хочется «дуалбут» с вейландом, то иксовые DM только мешают.

bread
()
Ответ на: комментарий от watchcat382

Как раз не надо настраивать. Логинишься в консоль и если хочешь иксы, то startx, а для sway у меня скрипт startw. Там вообще всё просто, без xinit, xauth и прочей хурмы. Прааильный запуск иксов это та ещё головоломка, которую от юзера скрывают за несколькими прослойками.

bread
()
Ответ на: комментарий от bread

прослойками

Эти прослойки в целом бесполезные, где-то тут была реализация аналога startx в около 10 строчек на шелле без доп. зависимостей (которая запускала напрямую Xorg). startx и xinit вообще по сути одно и то же, только первый на шелле, второй на Си, что не мешает первому запускать зачем-то второй.

Реально, что там требуется:

1) запустить бинарник Xorg в фоновом режиме, с в целом фиксированным набором аргументов

2) не помню это до или после - прописать ~/.Xauthority

3) подождать пока Xorg запустится (startx следит пока он поднимет сокет, но вместо этого можно было сделать trap на какой-то сигнал, который Xorg сам шлёт родителю когда готов)

4) запустить wm (обычно это тоже 1 строка но вообще зависит от wm) в нефоновом режиме, ну или xterm какой-нить или другую прогу

5) когда wm завершится выключить Xorg

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Где-то на треть startx состоит из плясок с xauth, остальное в основном обработка клиентских и серверных аргументов. Если все настройки захардкодить, то можно сильно сократить скрипт конечно. Тем временем вейланд можно поднять вообще без скриптов.

bread
()
Ответ на: комментарий от bread

Практически ничего полезного он там не делает, ни с xauth, ни с аргументами. И вообще у него в начале есть комментарий, что это пример как запускать иксы (демо), а вовсе не скрипт для использования в проде (там прям так и написано - крайне рекомендуется написать свой а не использовать этот). Скорее всего всё то разнообразие строчек внутри него сделано специально именно с целью продемонстрировать возможные разные подходы, причём где-то в 90-х и с тех пор не особо обновлялось.

Что касается вайланда, то у тебя странное сравнение. Можно с тем же успехом засунуть запуск Xorg внутрь бинарника wm и сказать что скрипты теперь не нужны, только зачем? Это потеря универсальности, модульности, юниксвея. Суть скрипта-запускатора именно в том, что ты можешь в нём отдельно настроить графический сервер и отдельно - его полезную нагрузку (в том числе вообще отказавшись от wm, если тебе нужно только одно фулскрин приложение).

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от bread

Логинишься в консоль и если хочешь иксы

startx /usr/bin/jwm это я так jwm в иксах запускаю, а если нужен wayland то просто labwc, окна к окнам - жаль у labwc своей панели нет, а сторонние полное дерьмо, но я и без панели наловчился.

amd_amd ★★★★★
() автор топика

все кто не запускаются по startx рано или позно создают одну и туже тему «я обновил систему и теперь у меня черный экран»

amd_amd ★★★★★
() автор топика
Ответ на: комментарий от firkax

у него в начале есть комментарий, что это пример как запускать иксы (демо), а вовсе не скрипт для использования в проде

Так его дистроделы и переписывают. Так что он разный везде. Но суть там одна: настроить окружение и запустить x-сервер и клиенты с какими-то опциями. Только для юзера это слишком сложно всё. Нужно быть красноглазиком, чтобы правильно поднять иксы, тем более с навороченным DE. Поэтому придумали прослойку DM. Там тоже наверчено такое, что для настройки этого DM тоже нужно красноглазить. С вейландом всё радикально проще, все настройки там в самом конфиге композитора, поднять его тривиальная задача, прослойки не нужны. Так что в этом аспекте вейланд проще и удобнее.

bread
()
Последнее исправление: bread (всего исправлений: 1)
Ответ на: комментарий от watchcat382

Раньше в Дебиане также было,только tty7. Потом сделали на том же tty.
Лично я особой разницы не вижу.

А она есть, нажать ctrl-c в отдельной консоли быстрее :)

anc ★★★★★
()
Ответ на: комментарий от watchcat382

Странный кейс вручную запускать иксы.

Смотря в каких случаях. К примеру в процессе экспериментов с железом и/или низкоуровневой поддержкой для него - вполне обычное дело. Кто более-менее часто такими вещами занимается - тем актуально.

Не только, например у меня поддиванный сервак он же и десктоп, но десктоп эпизодический (работаю на ноуте в основном), после ребута мне там гуй нафиг не нужен, вот когда возникает потребность, тогда и запускаю вручную.

anc ★★★★★
()
Ответ на: комментарий от bread

Его не переписывать надо, а писать с нуля другой. Он вообще не предполагался как рабочий скрипт. А переписывание ведёт как раз к тому что там куча ненужного мусора, который в том дистре, под который его якобы переписали, никогда актуален не будет.

Нужно быть красноглазиком, чтобы правильно поднять иксы, тем более с навороченным DE.

4.2

Всё сводится к двум командам: запустить Xorg, запустить DE/WM. Даже xauth в современных системах уже не нужен (если только ты не планируешь пользоваться сетевой прозрачностью) т.к. соединения с локалхоста Xorg авторизует по uid без него.

Повторю ещё раз: практически всё содержимое startx/xinit - собрание всяких демок, легаси кода и кода, неактуального для дистра. Ну и немного полезного: возможность запустить иксы с нужной прогой вместо WM. То что у тебя в вайланде этого всего нет - так он просто не конфигурируемый.

firkax ★★★★★
()
Ответ на: комментарий от anc

Во-первых, речь была про ребут/выключение без логина в рута. Во-вторых, твой способ делает аварийный ребут без корректной остановки всего что надо, а кнопка обычно настроена на запуск штатного выключения.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Его не переписывать надо, а писать с нуля другой.

Тут не спорю, только кто это будет делать? Да и запустить DE это не 2 команды. Посмотри startxfce4 и /etc/xdg/xfce4/xinitrc, это жесть похлеще startx.

bread
()
Ответ на: комментарий от anc

sudo poweroff, что ещё? Кстати, даже в слаке теперь это работает от юзера через logind. А вообще линукс конечно крутой, даже выключить компьютер без красноглазия не получается. Рецепты «как выключить компьютер» всегда доставляли. Поттеринг вот подпортил немножко веселье.

bread
()
Ответ на: комментарий от bread

sudo poweroff, что ещё?

Занести suid, занести пользака в разрешенную группу... вариантов больше одного.

Кстати, даже в слаке теперь это работает от юзера через logind.

elogind если быть правильным.

anc ★★★★★
()
Ответ на: комментарий от bread

Тут не спорю, только кто это будет делать?

Дистрописатели, очевидно. Или ты сам, если у тебя LFS.

xfce

Насколько я посмотрел, там почти всё опять конфиги, но всесто короткого if [ -z "$VAR" ]; then export VAR="VALUE"; fi они зачем-то устроили простыни на 6+ строк на каждую переменную (по крайней мере в дебиане так), от чего оно выглядит длинным.

Ну и в любом случае, этот скрипт - часть xfce. Какая тебе разница скрипт это или бинарник, всё равно ты будешь запускать его одной строкой.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)