LINUX.ORG.RU

URXVTC запускается не каждый раз при старте системы

 ,


0

2

имеется арч, i3wm, urxvt (urxvtd, urxvtc)

в файле .xinitrc прописан старт urxvtd, в конфиге i3wm прописан старт urxvtc, но почему то клиент стартует не всегда. Пробывал старт клиента как и напрямую, командой «exec urxvtc», так и через скрипт

`--> cat ~/.saf-scrypt/urxvtc_start.sh 
#! /bin/sh
while [[ -z $(pgrep '^urxvtd$') ]] && [[ -z $(pgrep '^i3bar$') ]]
do
        sleep 1
done
urxvtc

скрипт сделал — думал что не успевает запуститься либо сервер urxvtd, либо i3wm. но ни так ни так постоянного запуска не наблюдается.

★★

А зачем тебе стартовать пустой терминал при старте i3? Просто интересно.

Как сам скрипт запускаешь?

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

в том то и дело — чо так, чо эдак: работает одинаково (то стартует, то нет...) именно с urxvtc такие проблемы, с обычным urxvt без демона-клиента все норм логи ошибок пустые

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

У меня тоже самое замечено с google-chrome-stable, один раз из десяти (приблизительно) не запускается при старте . Система такая же, arch+i3wm. Пробовал в конфиге i3wm прописывать и так

exec google-chrome-stable

и так
exec --no-startup-id google-chrome-stable

Значит можно предположить, что проблема не в urxvt.

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

В порядке бреда, попробуй запускать urxvtd как `/usr/bin/urxvtd -f -o`. Так он забиндится к текущему $DISPLAY и форкнется, когда сокет будет готов.

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

ну так вручную то urxvtc норм запускается, даже када автоматом не запустился... значит с urxvtd все норм, он есть всегда в запущенных процессах

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

Скрипт кривой у тебя. Если i3bar запустился, то пофигу на urxvtd. Так что и впрямь может не успевать. Убери && [[ -z $(pgrep '^i3bar$') ]].

Вообще не совсем понятно, зачем так хитро и костыльно. Вот например у меня через xinitrc всё прекрасно запускается (awesome вместо i3 значения тут не имеет):

#!/bin/sh
xrdb -merge "$HOME/.config/X11/xresourses"
firefox &
deadbeef &
urxvtd -q -f -o
xkbcomp "$HOME/.config/xkb/my" $DISPLAY
xkbcomp $DISPLAY - | egrep -v "group . = AltGr;" | xkbcomp - $DISPLAY
xset r 127 -r 107 -r 133
deluge &
urxvtc -e poezio &
exec awesome

И соответственно не приходится городить urxvtd & с последующим всё равно ожиданием через костыль со sleep.

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

в общем исправил скрипт на такой

посмотрю чо будет, вроде пока работает

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

Запускай urxvtd так, как показал тебе выше я и Psych218. При таком запуске загрузка WM и прочего продолжится только после того, как urxvtd забиндится к сокету, форкнет основной процесс и завершится (ну или вылетит с ошибкой). Я запускаю через `~/.xprofile` вот так:

~ cat .xprofile 
#!/usr/bin/env bash
/usr/bin/light-locker &
/usr/bin/urxvtd -q -f -o

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

почему пофиг на urxvtd? ведь там стоит логическое И а не ИЛИ.

Ну так вот именно поэтому. С логикой проблемы? «Если одна строка пуста И вторая строка пуста, то спать». Конкретно в твоём случае «Если нет urxvt И нет i3bar». Условие верно, когда ОБЕ строки пусты. Когда не запущен ни i3bar ни urxvtd, обе проверяемые строкипусты, соответственно [[ -z ]] это Истина, у тебя Истина && Истина, условие верно. Когда запустился i3bar, одна из проверяемых строк не пуста, соответственно второе условие принимает значение Ложь, а Истина && Ложь == Ложь, соответственно никакого sleep не будет. А через раз срабатывает как раз из-за того, что раньше запустится urxvtd или i3bar. Тебе как раз ИЛИ и нужно было, чтобы сделать то, что ты хотел: «Если не запущет urxvtd ИЛИ не запущен i3bar, то ждать ещё секунду».

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

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

да енто уже не имеет значения, сделал совссем по другому...

safocl ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.