Обратил внимание на такую ситуацию: awesome не выводит сообщения на stderr.
Например. Командуем в эмуляторе терминала
Код: Выделить всё
dd if=/dev/random of=/dev/null bs=1 count=10000
затем в другом окне терминала (или в другой вкладке) говорим
Код: Выделить всё
kill USR1 $(pidof dd)
В ответ должно быть нечто вроде
Код: Выделить всё
552+0 записей получено
552+0 записей отправлено
скопировано 552 байта (552 B), 55,796 c, 0,0 kB/c
Сначала я грешил на эмулятор терминала (который у меня urxvt), однако попробовав xfce4-terminal, обнаружил, что там то же самое. При этом в виртуальном терминале (вне иксов) всё нормально.
Стало быть, проблема всё-таки в оболочке.
FAQ Awesome по этому поводу говорит следующее:
Когда при применении вашей конфигурации что-то идет не так, awesome отправляет сообщение об ошибке в системный поток stderr. Когда он запущен с обычным $ startx, тогда ошибки будут выводиться прямо в терминал. Если вы используете что-то более целостное( например DM, такие как KDM или GDM), стандартный поток stderr перенаправляется куда-нибудь еще. Чтобы узнать куда, запустите следующую команду:
Код: Выделить всё
$ ls -l /proc/$(pidof awesome)/fd/2
У меня используется lxdm, и с помощью предложенной команды выясняется что
Код: Выделить всё
/proc/$(pidof awesome)/fd/2 -> /dev/null
Проверил startx - всё верно, сообщения выводятся в терминал, как и сказано в FAQ.
Тогда решил попробовать другой DM и посмотреть, что будет. Взял xdm.
Здесь, правда, возникла проблема - awesome вообще не хотел запускаться с ошибкой Can't open display (или что-то в этом роде), пришлось отобрать права на исполнение у ck-launch-session, только тогда запустился, и оказалось, что сообщения выводятся таки в терминал.
При этом
Код: Выделить всё
/proc/$(pidof awesome)/fd/2
С одной стороны, xdm - не показатель, он может дергать тот же startx, (хотя я достоверно этого не знаю), тогда причина может быть в lxdm.
С другой стороны, если взять другую оболочку, xfce например, то там всё выводится как надо, при любом DM, тогда выходит, виноват awesome.
И вот теперь я думаю, кого пинать? Awesome или lxdm?
И главное, как мне заставить awesome выводить сообщения в терминал?
FAQ предлагает такой вариант
Код: Выделить всё
exec /usr/bin/awesome >> ~/.cache/awesome/stdout 2>> ~/.cache/awesome/stderr
Какие будут мнения?
Прошу высказываться.
P.S. Это перепост темы с форума slackware.ru. Там никто не откликнулся. Здесь народу побольше.
