4790
Как избавиться от 90 секундного (1:30s) ожидания после завершения работы в KDE
Был найден способ (ужасный костыль на самом деле, но безопасный, только разработчики могут исправить эту проблему, пишите на форумы, создавайте багрепорты) чтобы система не ждала 90 секунд чтобы завершить работу или сократить это время ожидания. Способ проверен на manjaro kde minimal 16.
Как обнаружить зависшее приложение или юнит вы можете узнать из этой статьи: https://manjaro.ru/blog/how-to/kak-uznat-kakaja-programma-ili-junit-meshaet-zaversheniju-raboty.html.
Опытным путем были обнаружены причины ожидания системы, к сожалению, это приложения KDE стека.
Хочу поблагодарить Eudakimau за тесты и потерянное время.
Приступим к решению:
1) Нужно создать сервис killkde:
2) Добавим сервис в автозагрузку и выполним его:
3) Создадим файл /usr/local/bin/killkde.sh:
4) Сделаем файл /usr/local/bin/killkde.sh исполняемым:
Также одна из причин зависаний — sddm. Вам необходимо установить и использовать другой DM(Display Manager), если вы не хотите использовать другой, то будьте готовы ожидать 90 секунд. Я вас предупредил.
Для установки Lightdm выполните:
Назначьте его в качестве основного:
Выполните пару перезагрузок, проверьте работает ли у вас данный метод, не стесняйтесь оставлять комментарии. Если у вас есть другое решение, смело пишите его.
Повторюсь, если вам не помог данный способ, то прошу написать какая программа мешает завершению сеанса, узнать вы можете это с помощью данной статьи: https://manjaro.ru/blog/how-to/kak-uznat-kakaja-programma-ili-junit-meshaet-zaversheniju-raboty.html.
Как обнаружить зависшее приложение или юнит вы можете узнать из этой статьи: https://manjaro.ru/blog/how-to/kak-uznat-kakaja-programma-ili-junit-meshaet-zaversheniju-raboty.html.
Опытным путем были обнаружены причины ожидания системы, к сожалению, это приложения KDE стека.
Хочу поблагодарить Eudakimau за тесты и потерянное время.
Приступим к решению:
1) Нужно создать сервис killkde:
sudo nano /etc/systemd/system/killkde.service
[Unit]
Description=Killkdesv
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/usr/local/bin/killkde.sh
[Install]
WantedBy=multi-user.target
2) Добавим сервис в автозагрузку и выполним его:
sudo systemctl enable killkde
sudo systemctl start killkde
3) Создадим файл /usr/local/bin/killkde.sh:
sudo nano /usr/local/bin/killkde.sh
#!/bin/bash
su -c "killall -9 ksmserver"
su -c "killall -9 kdeinit5"
su -c "killall -9 kactivitymanagerd"
su -c "killall -9 kded5"
su -c "killall -9 klauncher"
su -c "killall -9 kwin_x11"
su -c "killall -9 kaccess"
su -c "killall -9 drkonqi"
su -c "killall -9 sddm"
su -c "killall -9 sddm-greeter"
4) Сделаем файл /usr/local/bin/killkde.sh исполняемым:
sudo chmod +x /usr/local/bin/killkde.sh
Также одна из причин зависаний — sddm. Вам необходимо установить и использовать другой DM(Display Manager), если вы не хотите использовать другой, то будьте готовы ожидать 90 секунд. Я вас предупредил.
Для установки Lightdm выполните:
sudo pacman -S lightdm lightdm-gtk-greeter
Назначьте его в качестве основного:
sudo systemctl enable -f lightdm
Выполните пару перезагрузок, проверьте работает ли у вас данный метод, не стесняйтесь оставлять комментарии. Если у вас есть другое решение, смело пишите его.
Повторюсь, если вам не помог данный способ, то прошу написать какая программа мешает завершению сеанса, узнать вы можете это с помощью данной статьи: https://manjaro.ru/blog/how-to/kak-uznat-kakaja-programma-ili-junit-meshaet-zaversheniju-raboty.html.
11 комментариев
Вот, если можно было-бы, еще также сделать на выключение цены бы не было!
На выключение тоже самое!
Столько ж их будет в итоге?
А не лучше создать файлик /usr/local/bin/killkdelist с простым списком зависающих процессов, а сам скрипт упростить? Как то так:
#!/bin/bash
su -c «killall -9 $(cat killkdelist)»
И сам список ведь можно автоматом (ну, полуавтоматом) генерить, нет?
Но можно ж из /debugsvinfo и /debugpsinfo в killkdelist седом имена вытаскивать. Хотя можно и прямо в скрипте это реализовать, на переменных. Будет 1 файл, но будет изящнее. И работать будет везде, не только в KDE minimal.
KDE-Minimal Setting-Up