OSKiller |
|
Темы:
20
Сообщения:
132
Участник с: 28 декабря 2016
|
В воскресенье обновил ноут с lxQt... Обновление прошло успешно, но после ребута не видить сеть, блютуз и звук (как минимум). В понедельник с утра обновил десктоп с кедами - полёт нормальный... Кто что может подсказать?... В планах - загрузка с флешки, монтирование разделов arch-chroot c попыткой обновить систему... Если не повезёт - перебить... |
vs220 |
|
Темы:
25
Сообщения:
8524
Участник с: 16 августа 2009
|
OSKillerПоставьте дополнительно lts ядро и хедеры на него , фирмарь обновите. Скорее всего драйвера не завелись на новом ядре. Смотрите вывод
|
konstantinov-ms |
|
Темы:
16
Сообщения:
732
Участник с: 29 ноября 2009
|
После одного из последних обновлений (точнее не скажу, ибо компьютер перезагружаю довольно редко, только после обновления ядра; поэтому заметил только сейчас) remind стал блокировать отработку скрипта /home/user/.config/openbox/autostart.sh. Если remind прописан в этом скрипте высоко (поближе к началу), то записанные после него в автозапуск программы не запускаются вообще, а те, что до него, не выводятся на экран (например, tint2 видно, что запущена, но поставлена на паузу, и на экране её нет; попытка снять с паузы приводит к зависанию openbox). Периодически также не отрабатывают скрипты, запускаемые в фоне другими программами (тут всё рандомно - может отработать, а может и нет; например, у меня компьютер просыпается утром по systemd .timer и запускает будильник через systemd .service; так вот этот будильник может отработать, а может и нет). Самое интересное, что сама программа remind исправно выдаёт все предупреждения, которые в неё записаны. Решение: либо вообще убрать из autostart.sh программу remind и запускать её после нормального входа в сессию и автозагрузки всех программ. Либо опустить её в самый низ скрипта, возможно, добавив ещё и sleep секунд на 15-30. Характеристики: kernel 6.6.10.arch1-1; openbox 3.6.1-10; remind 4.2.7-1. DM и менеджеры логина не используются, вход происходит примерно по такой схеме. |
vs220 |
|
Темы:
25
Сообщения:
8524
Участник с: 16 августа 2009
|
konstantinov-msРеминд как записан Или ?
|
vasek |
|
Темы:
47
Сообщения:
11860
Участник с: 17 февраля 2013
|
konstantinov-msА если создать unit ... remind.service ...?
Ошибки не исчезают с опытом - они просто умнеют
|
konstantinov-ms |
|
Темы:
16
Сообщения:
732
Участник с: 29 ноября 2009
|
vs220Не, ну это совсем детский вариант был бы :)))) Программа исправно работала многие годы; проблемы с ней буквально только что проявились. Конечно, стоит амперсанд (&), иначе бы скрипт ждал завершения программы remind, прежде чем двигаться дальше.konstantinov-msРеминд как записан Полностью запись выглядела так: Кстати, сейчас подумал, а не в mpg123 ли дело? Довольно давно она вела себя очень плохо, вешая openbox, и я её занёс в IgnorePkg. Она теперь у меня отстаёт на несколько версий (актуальная версия 1.32.3-1, а у меня стоит 1.29.3-2). Надо бы попробовать её обновить и проверить, не заработает ли. Или проигрывать оповещения чем-то другим, например 'aplay'. Надо поэкспериментировать на досуге.vasekКстати, хорошая идея, спасибо! Попробую. Сервисы systemd оказались довольно удобной штукой - я напихал в них очень много разных программ от Thunar до caffeine и redshift-gtk. Удобно! UPD (РАБОЧИЙ ЮНИТ): Сделал через remind.service: Работает. Всё, что ниже, уже неактуально, но оставлю на память о потенциальных проблемах. Экранирование в systemd делается при помощи знака '%'; спасибо alien175, не брезгующему чтением манов! :).НЕАКТУАЛЬНО: Единственно, что systemd не пропустил такую конструкцию: "~/.reminders", пришлось указывать путь полностью: "/home/user/.reminders". Будем наблюдать. UPD2: Нет, не работает. Почему-то скрипт передаёт вместо переменной '%s' окружение '/bin/bash' и, соответственно, выдаёт сообщения '/bin/bash' вместо тех сообщений, которые прописаны в .reminders. Пока нет времени разбираться с юнитом. Вернул как было. На досуге попробую разобраться. UPD3: Короче, через костыль, но сделал юнитом. Пришлось сделать скрипт, в котором прописана команда запуска remind (приводил её выше), а этот скрипт уже запускается юнитом systemd. Всё так, как приведено выше, но вместо команды запуска reimind указана команда запуска скрипта. Да ещё добавлен Type=forking, иначе systemd ругается. Да ещё добавил опцию RestartSec=10, чтобы не мельтешил в случае сбоя. В исправленном виде всё работает корректно. |
alien175 |
|
Темы:
21
Сообщения:
470
Участник с: 27 декабря 2010
|
переменной '%s'*Systemd:
Если это внутренняя переменная Remind, то экранировать символ % обязательно. То, что у вас это где-то и как-то раньше работало - просто случайность.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE |
konstantinov-ms |
|
Темы:
16
Сообщения:
732
Участник с: 29 ноября 2009
|
alien1751. Экранирование – это первое, что пришло мне в голову. Но оно не помогает. Или подскажите, как это делать правильно. Буду благодарен. Обратный слэш не работает. Пробовал через 'Environment', но то ли что-то не так делал, то ли эта опция для другого. Короче, ума не хватило пока использовать эту опцию.переменной '%s'*Systemd: 2. Раньше это запускалось из скрипта /home/user/.config/openbox/autostart.sh С чего бы это было случайностью? Это полностью соответствует man remind. И заключалось в одинарные кавычки. Не вижу здесь случайностей. |
vantu5z |
|
Темы:
10
Сообщения:
91
Участник с: 28 января 2012
|
konstantinov-msДля указания домашнего каталога можно использовать %h, например: %h/.reminders И запускать сервис от пользователя
|
konstantinov-ms |
|
Темы:
16
Сообщения:
732
Участник с: 29 ноября 2009
|
vantu5zСпасибо! Но и полный путь работает: /home/user/.reminders vantu5zИменно так и запускаю. Там в другом проблема. Есть переменная '%s' программы remind, которая говорит программе считать MSG из .reminders и передать его в виде сообщения в notify-send. Но как справедливо указал alien175, в systemd эта переменная означает 'User shell'. Поэтому ничего удивительного в том, что unit systemd передаёт эту переменную в виде '/usr/bash'. Что потом и выводится в сообщениях. Вариант экранировать '%s' обратным слэшем не работает. Была мысль, нагугленная в интернетах, использовать для этой цели 'Environment'. Но пока не разобрался, как это делать правильно. Да и вообще в верном ли направлении копаю. В целом, программа remind работает и через обычный запуск при помощи bash, и через юнит systemd (правда, через костыль, описанный выше). Тут чисто спортивный интерес: можно ли заставить юнит запускать программу корректно, с передачей переменной '%s' (без передачи всё работает). |