Plymouth quit wait service что это
Перейти к содержимому

Plymouth quit wait service что это

  • автор:

Помогите разобраться с plymouth-quit-wait. 20 секунд хватит всем?

Видно, что фейлится по таймауту. Смотрим .service файл:

$ grep -i timeout /usr/lib/systemd/system/plymouth-quit-wait.service TimeoutSec=20 

20 секунд. Отлично. Меняем на 120, перезагружаемся, и в итоге:

systemd-analyze blame | grep plymouth-quit-wait.service 38.312s plymouth-quit-wait.service 

В связи с чем есть пару вопросов:

1. Для чего используется этот таймаут? Таким образом какой-то баг пофиксили или что?

2. Почему именно 20 секунд?

drake
30.07.13 04:23:16 MSK

Пальцем вы небо, возможно, таймаут нужен для systemd, он же «умный» запускается сервисы (юниты) параллельно, может какой-то не успевает отработать, вот и поставили таймаут, что бы это как-то работало.

kostik87 ★★★★★
( 30.07.13 09:10:17 MSK )
Ответ на: комментарий от kostik87 30.07.13 09:10:17 MSK

Я бы ещё понял, если бы это была задержка перед запуском службы (ну мало ли). Но нет, 20 секунд — это максимальное время, которое отводится на её запуск (и работу по сути).

$ grep -i timeout /etc/systemd/system/plymouth-quit-wait.service TimeoutSec=5 $ systemd-analyze blame | grep plymouth-quit-wait 5.013s plymouth-quit-wait.service 

drake
( 30.07.13 09:57:55 MSK ) автор топика

А вот и коммит на freedesktop.org. Только я всё равно ничего не понимаю. 🙁

drake
( 30.07.13 10:24:06 MSK ) автор топика

plymouth-quit-wait — сервис, который ждёт завершения Plymouth. Он нужен исключительно для того, чтобы программы, работающие с графикой (в частности, иксы) запускались после plymouth и не конфликтовали за фреймбуфер.
Таймаут здесь служит для того, чтобы система смогла запуститься, если Plymouth сломается/зависнет или по иным причинам не сможет отправить процессу plymouth-quit-wait сигнал о своём завершении (там D-Bus и всё такое).

intelfx ★★★★★
( 30.07.13 10:25:51 MSK )
Ответ на: комментарий от intelfx 30.07.13 10:25:51 MSK

Похоже так и есть. Но тогда есть другой вопрос.

Что происходит в этом случае? plymouth-quit-wait фейлится, а что дальше? Получается, кто-то должен убить зависший plymouthd?

drake
( 30.07.13 10:47:46 MSK ) автор топика
Ответ на: комментарий от drake 30.07.13 10:47:46 MSK

Ну да, по идее, дальше требуется человеческое вмешательство (свитчнуться в консоль, посмотреть логи и починить/снести plymouth).

Кстати, в systemd у всех юнитов есть неявный таймаут в 90 секунд. Здесь просто сделали меньше — видимо, оно часто падает 🙂

intelfx ★★★★★
( 30.07.13 11:25:17 MSK )
Ответ на: комментарий от intelfx 30.07.13 11:25:17 MSK

дальше требуется человеческое вмешательство

В моём случае оно требуется постоянно. Но всё же меня смущает старт GDM’а даже в случае фейла службы plymouth-quit-wait. Причём всё происходит без ошибок.

у всех, кроме имеющих тип «oneshot», юнитов есть неявный таймаут в 90 секунд

Справедливости ради фикс.

Defaults to 90s, except when Type=oneshot is used in which case the timeout is disabled by default.

drake
( 30.07.13 13:16:30 MSK ) автор топика
Ответ на: комментарий от drake 30.07.13 13:16:30 MSK

у всех, кроме имеющих тип «oneshot», юнитов есть неявный таймаут в 90 секунд

Справедливости ради фикс.

Хм, и действительно. Надо читать маны, а не цитировать на память 🙂

Кстати, насколько понимаю, у Fedora GDM должен быть пропатчен на взаимодействие с Plymouth.. Попробуй включить gdm-plymouth.service вместо gdm.service (если ты ещё не).

intelfx ★★★★★
( 31.07.13 11:05:29 MSK )
Ответ на: комментарий от intelfx 31.07.13 11:05:29 MSK

у Fedora GDM должен быть пропатчен на взаимодействие с Plymouth

Ну да, он собран с флагом «—with-plymouth». gdm.spec:

%configure --with-pam-prefix=% \ --with-run-dir=/run/gdm \ --enable-split-authentication \ --enable-profiling \ --enable-console-helper \ --with-plymouth \ --with-selinux 

Собственно в таком случае сам GDM следит за завершением работы Plymouth. Например, там есть такие строки:

#ifdef WITH_PLYMOUTH /* Plymouth is waiting for the go-ahead to exit */ if (slave->priv->plymouth_is_running) < plymouth_quit_with_transition (slave); >#endif 
res = g_spawn_command_line_sync ("/bin/plymouth --ping", NULL, NULL, &status, &error); 
res = g_spawn_command_line_sync ("/bin/plymouth deactivate", NULL, NULL, NULL, &error); 
res = g_spawn_command_line_sync ("/bin/plymouth quit --retain-splash", NULL, NULL, NULL, &error); 

В Fedora gdm.service не сильно отличается от gdm-plymouth.service из AUR:

$ diff -u /usr/lib/systemd/system/gdm.service plymouth/gdm-plymouth.service --- /usr/lib/systemd/system/gdm.service 2013-06-22 12:04:03.000000000 +0700 +++ plymouth/gdm-plymouth.service 2013-06-03 20:50:26.000000000 +0700 @@ -1,15 +1,13 @@ [Unit] Description=GNOME Display Manager -Conflicts=getty@tty1.service plymouth-quit.service -After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service +After=systemd-user-sessions.service + +Conflicts=plymouth-quit.service +After=plymouth-quit.service [Service] -ExecStart=/usr/sbin/gdm -Restart=always -IgnoreSIGPIPE=no -BusName=org.gnome.DisplayManager +ExecStart=/usr/bin/gdm -nodaemon StandardOutput=syslog -StandardError=inherit [Install] Alias=display-manager.service 

Не думаю, что здесь что-то имеет решающее значение. Кроме того, пользователи Arch’а тоже жаловались на эту проблему.

Чтож, похоже всё же это бага в Plymouth/GDM. Причём «фейл» GDM’a не является следствием фейла plymouth-quit-wait.service (они стартуют параллельно). Тем не менее, спасибо за помощь.

Форум русскоязычного сообщества Ubuntu

Страница сгенерирована за 0.047 секунд. Запросов: 25.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Plymouth (Русский)

Состояние перевода: На этой странице представлен перевод статьи Plymouth. Дата последней синхронизации: 12 апреля 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Plymouth — это проект Fedora и один из официальных проектов freedesktop.org, реализующий графический экран загрузки системы без бегущих надписей (логов) на экране. Он использует kernel mode setting (KMS, установка разрешения и глубины цвета на уровне ядра) для обеспечения родного разрешения экрана на раннем этапе загрузки, после чего отображает красивый экран загрузки вплоть до появления менеджера входа.

Подготовка

Plymouth главным образом использует KMS (Kernel Mode Setting) для отображения графики. На EFI/UEFI системах plymouth может использовать EFI framebuffer.

Если вы не можете использовать KMS, например, из-за использования проприетарного драйвера или не хотите использовать EFI framebuffer, обратите внимание на Uvesafb, поскольку он поддерживает широкоформатные разрешения. Если у вас не настроены ни KMS ни framebuffer, то Plymouth вернётся в текстовый режим.

Установка

Установите пакет plymouth . Разрабатываемая версия доступна в пакете plymouth-git AUR .

По умолчанию Plymouth записывает сообщения загрузки в /var/log/boot.log и не показывает графический экран загрузки.

  • Для отображения графического экрана загрузки добавьте splash в параметры ядра.
  • Для обеспечения тихой загрузки также добавьте quiet .
  • Для отключения записи лога добавьте plymouth.nolog .

Для раннего запуска Plymouth нужно добавить его в initramfs.

mkinitcpio

Добавьте plymouth в массив HOOKS в mkinitcpio.conf.

/etc/mkinitcpio.conf
HOOKS=(. plymouth . )

dracut

После установки Plymouth dracut автоматически обнаружит его и добавит в ваши образы initramfs. Если автоопределение не сработало, вы можете заставить dracut добавить Plymouth с помощью следующей строки в конфигурации dracut:

/etc/dracut.conf.d/myflags.conf
add_dracutmodules+=" plymouth "

Настройка

Plymouth настраивается через файл /etc/plymouth/plymouthd.conf . Значения по умолчанию описаны в файле /usr/share/plymouth/plymouthd.defaults .

Выбор темы

Plymouth поставляется со следующими темами:

  1. BGRT: Вариант Spinner, который использует OEM-логотип, если он доступен (BGRT означает Boot Graphics Resource Table)
  2. Fade-in: «Простая тема с затухающими и разгорающимися мерцающими звездами»
  3. Glow: «Производственная тема, показывающая процесс загрузки в виде круговой диаграммы»
  4. Script: «Пример скрипта» (Несмотря на описание, выглядит очень симпатичной темой с логотипом Arch)
  5. Solar: «Космическая тема, голубая звезда с протуберанцами»
  6. Spinner: «Простая тема с вращающимся индикатором загрузки»
  7. Spinfinity: «Простая тема, показывающая вращающийся знак бесконечности в центре экрана»
  8. Tribar: «Текстовый режим с трёхцветной полосой прогресса»
  9. (Text: «Текстовый режим с трёхцветной полосой прогресса»)
  10. (Details: «Резервная тема с подробностями загрузки»)

По умолчанию используется тема bgrt. Чтобы выбрать другую, пропишите её в настройках, например:

/etc/plymouth/plymouthd.conf
[Daemon] Theme=fade-in

или выберите тему с помощью команды:

# plymouth-set-default-theme -R тема 

При каждой смене темы необходимо пересобирать initrd . Это произойдёт автоматически при выборе темы командой plymouth-set-default-theme с опцией -R (в противном случае пересоберите образ initramfs самостоятельно).

Установка новых тем

Дополнительные темы доступны в AUR. [1] Также plymouth-kcm добавляет интеграцию с настройками KDE Plasma и предлагает темы, отсутствующие в AUR.

Список установленных тем можно получить командой:

$ plymouth-set-default-theme -l
$ ls /usr/share/plymouth/themes
bgrt details fade-in glow script solar spinfinity spinner text tribar

Задержка отображения

Plymouth позволяет добавить задержку перед отображением графического экрана загрузки:

/etc/plymouth/plymouthd.conf
[Daemon] ShowDelay=5

Если система загружается настолько быстро, что загрузочная анимация успевает лишь моргнуть до запуска DM, можно установить задержку появления экрана загрузки в параметре ShowDelay (в секундах) больше чем длительность загрузки системы, чтобы вместо мерцания отображался просто пустой экран. По умолчанию время задержки 0 секунд.

HiDPI

Пропишите коэффициент масштабирования (целое число) в настройках:

/etc/plymouth/plymouthd.conf
DeviceScale=коэффициент-масштабирования

и пересоберите initrd.

Советы и рекомендации

Отображение сообщений ядра

Чтобы включить отображение сообщений ядра во время загрузки, нажмите Esc .

Плавный переход к экранному менеджеру

GDM поддерживает плавный переход из коробки.

Для других экранных менеджеров можно создать drop-in файл для юнита display-manager.service :

/etc/systemd/system/display-manager.service.d/plymouth.conf
[Unit] Conflicts=plymouth-quit.service After=plymouth-quit.service rc-local.service plymouth-start.service systemd-user-sessions.service OnFailure=plymouth-quit.service [Service] ExecStartPre=-/usr/bin/plymouth deactivate ExecStartPost=-/usr/bin/sleep 30 ExecStartPost=-/usr/bin/plymouth quit --retain-splash

Предпросмотр тем

Для просмотра тем без перезагрузки и пересборки initrd можно перейти в терминал нажатием Ctrl+Alt+F6 , войти как root и набрать:

# plymouthd # plymouth --show-splash

Для выхода из просмотра нажать Ctrl+Alt+F6 снова и набрать:

# plymouth --quit

Изменение фонового изображения темы

В некоторых темах (таких как spinner и bgrt) можно изменить фоновое изображение. Для этого следует заменить файл /usr/share/plymouth/themes/theme/background-tile.png на собственный. Во избежание перезаписи изменённой темы при обновлении plymouth, все действия проводите над копией темы. После изменения не забудьте пересобрать initrd.

Отсутствующее BGRT изображение

Если вы используете тему BGRT, но UEFI не предоставляет логотип производителя, вы можете поместить запасное изображение в /usr/share/plymouth/themes/spinner/bgrt-fallback.png .

Замедление загрузки системы для отображения анимации

Если ваша система загружается настолько быстро, что анимация толком не успевает отобразиться, вы можете замедлить загрузку, создав drop-in файл для службы plymouth-quit.service и добавив туда ExecStartPre=/usr/bin/sleep 5 . Смотрите этот пост на reddit.

Решение проблем

Если у вас возникают проблемы во время загрузки, вы можете временно отключить Plymouth с помощью следующих параметров ядра:

plymouth.enable=0 disablehooks=plymouth

Для записи отладочных сообщений в /var/log/plymouth-debug.log добавьте параметр ядра:

plymouth.debug

Смотрите также

  • Оригинальная спецификация
  • Обсуждение на форуме

Оптимизация Debian. Сервисы.

Система по умолчанию загружает большое количество не нужных сервисов, которые притормаживают работу системы.

Насколько быстро грузится сейчас система:
systemd-analyze

Время затраченное на старт каждого сервиса:
systemd-analyze blame

Список сервисов:
systemctl list-units —type=service

Список запущенных сервисов:
systemctl | grep running

Посмотреть статус сервиса в системе:

systemctl status Имя_сервиса

Узнать кого сервис запускает:
systemctl cat имя_сервиса

Посмотреть доступную документацию:
systemctl help имя_сервиса

Остановка и отключение сервисов.

Что бы отключить сервис, выполняем:
sudo systemctl disable имя_сервиса

Что бы остановить сервис:
sudo systemctl stop имя_сервиса

Включение и запуск сервисов.

Что бы включить сервис:
sudo systemctl enable имя_сервиса

Что бы запусти ть сервис:
sudo systemctl start имя_сервиса

  1. man-db.service — автоматическая служба обновления манов
  2. NetworkManager-wait-online.service — служба сетевого соединения. Не трогать!
  3. systemd-journal-flush.service — системный журнал. Не трогать!
  4. udisks2.service — сервис монтирования внешних дисков. Не трогать!
  5. i fupdown-pre.service — служба сетевого соединения. Не трогать!
  6. apparmor.service — модуль безопасности. Не трогать!
  7. AccountService предоставляет набор интерфейсов D-Bus для запроса и управления информацией об учетных записях пользователей. Не трогать!
  8. dev-sda1.device — поддержка жесткого диска. Не трогать!
  9. systemd-random-seed.service — . не трогать!
  10. networking.service — служба сетевого соединения. Не трогать!
  11. smbdиnmbd — это демон Samba Process. Если не нужно шарить папки для Windows, то отключить.
  12. Telnetотключить , если не нужна связь по протоколу telnet.
  13. ModemManager.service — требуется, если вы хотите, что бы комп грубо говоря раздавал инет.
  14. exim4.service — сервис передачи сообщений, вроде sendmail. Отключить .
  15. avahi-daemon.service — позволяет пользователям создавать IP-сети без специальных конфигурационных служб типа DNS-серверов. Отключить .
  16. polkit.service — озволяет непривилегированным пользователям выполнять некоторые действия, разрешённые администратором , (возможно, с запросом пароля пользователя или пароля администратора ), такие как монтирование ФС, внешних носителей и прочее. Не трогать!
  17. rsyslog.service — это очень быстрый, расширяемый сервис для управления логами с огромным количеством возможностей . Не трогать!
  18. accounts-daemon.service – это относится к учётным записям, Не трогать!
  19. acpid.service – задачей ACPI является обеспечение взаимодействие между операционной системой, аппаратным обеспечением и BIOS материнской платы. Не трогать!
  20. bluetooth.service — понятно, что за служба., если не используем, то Отключить .
  21. blk-availability.service — вспомогательный сервис для LVM2. Если не используем LVM2, то Отключить .
  22. upower.service — сервис управления питанием. Не трогать!
  23. iio-sensor-proxy.service — сервис управляющий сенсорами ноутбука. Если у вас не ноутбук , то Отключить .
  24. wpa_supplicant.service — сервис поддержки Wifi. Не трогать!
  25. smartmontools.service — контроль и слежение за системными накопителями. Отключить .
  26. lightdm.service — сервис оконного менеджера. Не трогать!
  27. plymouth-quit-wait.service — сервис поддерживающий экран загрузки. Не трогать!
  28. sysstat.service — отвечает за регулярный сбор информации о производительности системы. Отключить .
  29. e2scrub_reap.service — отвечает за запуск файловых систем ext. Не трогать!
  30. lvm2-monitor.serviceОтключить
  31. sysstat-collect.service — отвечает за регулярный сбор информации о производительности системы. Отключить .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *