[решено]openbox не стартуют второй раз иксы

indeviral
Если дело действительоно в этом то хватит и top,ps... сразу видно будет.
Думаю, что это он уже и делал, ты уже об этом писал и выше. А может и не делал. Хотя, конечно, в 1-ую очередь нужно было все это смотреть.
А вот интересно, покажутся ли эти зависшие процессы (если они действительно зависшие) в выводе systemctl list-jobs (после завершения X-ов)
Ошибки не исчезают с опытом - они просто умнеют
Haron_Prime
Vadim
сейчас такой .xinitrc
exec dbus-launch openbox-session
кхм...
а должен быть как минимум такой
if [ -d /etc/X11/xinit/xinitrc.d ]; then
 for f in /etc/X11/xinit/xinitrc.d/?*; do
   [ -x "$f" ] && . "$f"
 done
 unset f
fi
exec openbox-session

+10

Vadim, точно systemd и не ArchBang?

vasek, Haron_Prime, вот интересно, а с использованием дополнительно такого
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
     eval "$(dbus-launch --sh-syntax --exit-with-session)"
fi
у вас среди запущенных процессов dbus-launch --sh-syntax --exit-with-session потом хоть есть?
R.V., среди запущенных процессов dbus-launch нет в обоих случаях - т.е. как с конструкцией dbus-launch, так и без нее.
UPD - я эту конструкцию не использую, все нормально запускается и без нее (но в памяти держу, на всякий пожарный)
Ошибки не исчезают с опытом - они просто умнеют
vasek, не работает эта конструкция в Арче пару лет уже, если не больше (при правильном запуске соответствующий процесс можно увидеть в htop, например). Возможно поэтому chromium не завершается иногда должным образом. Не успеваю дописать. Позже еще отпишусь.
Что интересно, так это то, что из us Wiki xinitrc убрана и конструкция
if [ -d /etc/X11/xinit/xinitrc.d ]; then
 for f in /etc/X11/xinit/xinitrc.d/?*; do
   [ -x "$f" ] && . "$f"
 done
 unset f
fi
Но в ru эта конструкция имеется . Может не внимательно смотрел???
Но тогда не понятно - без этой конструкции не будут читаться скрипты из /etc/X11/xinit/xinitrc.d - разбираться особого желания пока нет.
А насчет DBus, в ru Wiki xinitrc есть такое примечание
Примечание: По крайней мере, убедитесь, что блок if в примере выше, присутствует в вашем файле .xinitrc для того чтобы подать скрипт /etc/X11/xinit/xinitrc.d/30-dbus.sh. Иначе сессия D-Bus не будет запущена.
но скритпа такого 30-dbus.sh нет ..... около 1-2 лет назад было изменение чего то насчет DBus - все забылось.
Вообщем многое изменилось, нужно вникать, а лень........ вроде и так все работает

EDIT 1 - писал в спешке, без обдумывания, что было в старой голове, то и написал. Так что, возможно, написал и ерунду, а проверять нет сил - похоже действуют магнитные бури (молодежи это явление еще пока не знакомо).
Ошибки не исчезают с опытом - они просто умнеют
В принципе все эти заклинания устарели, сейчас есть /etc/X11/xinit/xinitrc.d/50-systemd-user.sh но это я так понял подстраховка.
На случай если по каким то причинам не сработает dbus.service, но в любом случаи просто так скрипты из /etc/X11/xinit/xinitrc.d запускаться не будут.
vasek
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/?*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
так что наверное что-нибудь без этого работать небудет....

p.s. ссылка
Ошибки в тексте-неповторимый стиль автора©
indeviral
так что наверное что-нибудь без этого работать небудет....
Вообщем то я то же не собираюсь это выкидывать.
Наверное, тех, кто не пользуется DM (использует .xinitrc) не так и много.
Ошибки не исчезают с опытом - они просто умнеют
Здесь главное в связи с магнитными бурями конструкции не попутать.

А эта конструкция

if [ -d /etc/X11/xinit/xinitrc.d ]; then
 for f in /etc/X11/xinit/xinitrc.d/?*; do
   [ -x "$f" ] && . "$f"
 done
 unset f
fi
есть в дефолтном /etc/X11/xinit/xinitrc и...

indeviral
наверное что-нибудь без этого работать не будет

А я имею в виду dbus-launch --sh-syntax --exit-with-session.

Пишу с Debian Testing и у меня сейчас наблюдается запущенный данный процесс.
За его запуск и выход из сессии отвечает пакет https://packages.debian.org/buster/dbus-x11.
В AUR есть https://aur.archlinux.org/packages/dbus-x11/.
Возможно, эффект у них одинаковый. :)

Год назад где-то в Арче у меня было в ~/.xinitrc так:

DEFAULT_SESSION='spectrwm'

get_session(){
    local dbus_args=(--sh-syntax --exit-with-session)
    case $1 in
        awesome) dbus_args+=(awesome) ;;
        bspwm) dbus_args+=(bspwm-session) ;;
        enlightenment) dbus_args+=(enlightenment_start) ;;
        fluxbox) dbus_args+=(startfluxbox) ;;
        i3|i3wm) dbus_args+=(i3 --shmlog-size 0) ;;
        openbox) dbus_args+=(openbox-session) ;;
        spectrwm) dbus_args+=(spectrwm) ;;
        *) dbus_args+=($DEFAULT_SESSION) ;;
    esac
    echo "dbus-launch ${dbus_args[*]}"
}

exec $(get_session)

И соответствующие процессы были. Но я не уверен, что это абсолютно правильная конструкция. :))

Не могу сейчас проверить, Арча под руками нету. Проверьте, кому интересно... :)
R.V.
Vadim, точно systemd и не ArchBang?
ПРО что писал точно не ArchBang и точно systemd.
Только что снёс systemd и установил openrc,экспериментировать не буду,хочу спать.
Единственное что замеиил это что ALSA не сбрасывает громкость как в systemd а стоит такая как выставил.
Всем спокойной ночи.
Linux Forever!
Доброго времени суток. Так никто и не проверил. Ай-яй-яй... :))

В общем, после продолжительных тестов выяснилось, что вот так
Vadim
exec dbus-launch openbox-session
неправильно, а правильно вот так:
dbus-launch --sh-syntax --exit-with-session openbox-session
Здесь есть некоторые непонятки, но об этом уже, наверное, в другой теме.

Vadim
Только что снёс systemd и установил openrc
А тогда совсем не так, а как-то так:
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session
если используется consolekit.
 
Зарегистрироваться или войдите чтобы оставить сообщение.