Помогите разобраться с plymouth-quit-wait. 20 секунд хватит всем?
Видно, что фейлится по таймауту. Смотрим .service файл:
20 секунд. Отлично. Меняем на 120, перезагружаемся, и в итоге:
В связи с чем есть пару вопросов:
1. Для чего используется этот таймаут? Таким образом какой-то баг пофиксили или что?
2. Почему именно 20 секунд?

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

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

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

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

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

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

дальше требуется человеческое вмешательство
В моём случае оно требуется постоянно. Но всё же меня смущает старт GDM’а даже в случае фейла службы plymouth-quit-wait. Причём всё происходит без ошибок.
у всех, кроме имеющих тип «oneshot», юнитов есть неявный таймаут в 90 секунд
Справедливости ради фикс.
Defaults to 90s, except when Type=oneshot is used in which case the timeout is disabled by default.

у всех, кроме имеющих тип «oneshot», юнитов есть неявный таймаут в 90 секунд
Справедливости ради фикс.
Хм, и действительно. Надо читать маны, а не цитировать на память 🙂
Кстати, насколько понимаю, у Fedora GDM должен быть пропатчен на взаимодействие с Plymouth.. Попробуй включить gdm-plymouth.service вместо gdm.service (если ты ещё не).

у Fedora GDM должен быть пропатчен на взаимодействие с Plymouth
Ну да, он собран с флагом "—with-plymouth". gdm.spec:
Собственно в таком случае сам GDM следит за завершением работы Plymouth. Например, там есть такие строки:
В Fedora gdm.service не сильно отличается от gdm-plymouth.service из AUR:
Не думаю, что здесь что-то имеет решающее значение. Кроме того, пользователи Arch’а тоже жаловались на эту проблему.
Slow boot issue due to plymouth-quit-wait.service + ubuntu 18.04
This is freshly installed machine running as dual boot over Win 10. For every reboot machine hangs for 15 secs as the plymouth service unable to start, due to some reasons.
Below is the systemd-analyse output snippet
Here is the few snippet of boot logs
Here is the delay
Graphics driver installed latest version — 415 from ppa repository
Can you let me know why there is a delay happening due to plymount-quit service? Please let me know is there any other info you would require for troubleshoot?
Is it related to hardware / software /grahics driver issue?
![]()
4 Answers 4
Plymouth is not slowing your boot-up process! Plymouth is responsible for the boot-up splash screen. Please read Plymouth.
It loads the boot-up logo at the beginning of the boot-up process and then waits until the boot-up process has finished so it unloads the splash screen. That is all it does and that is why it has to run in parallel and co-exist throughout the whole boot-up process. It does not delay anything, it just waits.
That is exactly what is happening. No more and no less. Please take a look at the output you added to your question and carefully read the following:
● plymouth-quit-wait.service — Hold until boot process finishes up
How to Verify?
You can verify that plymouth-quit-wait.service is not holding anything back but the graphical login screen, by running the command:
which will output all the services that depend on plymouth-quit-wait.service (i.e services that are delayed by plymouth-quit-wait.service ). On a freshly installed Ubuntu system, the output will be like this:
Which means only the graphical login screen is configured to wait for the plymouth-quit-wait.service and nothing else.
On the other hand if you list the services that plymouth-quit-wait.service is configured to wait for by running the command:
the output would be almost every service that should run on boot and the output will look like this:
This confirms that plymouth-quit-wait.service is not slowing down anything but just running in parallel waiting for the system to fully boot and then it will hide the boot-up splash screen to bring up the graphical login screen.
To understand more.
Please run the following command in the terminal:
Then, look for SystemdAnalyzePlot.svg in your home directory and run it in the image viewer or the Internet browser. You might need to enlarge the image so that you can read the processes names. It is worth checking and will give you a better understanding on how the boot-up process works.
You can, however, reduce your boot-up time by disabling NetworkManager-wait-online.service so plymouth has one less process to wait for. This can indeed reduce your boot-up time. To do this please follow the steps in this answer.
Oh. and please leave plymouth alone, it’s not the one that makes you wait. it’s the one that waits for you.
Проблема медленной загрузки из-за plymouth-quit-wait.service + ubuntu 18.04
Это недавно установленная машина, работающая в режиме двойной загрузки поверх Win 10. При каждой перезагрузке машина зависает на 15 секунд, так как служба plymouth не может запуститься по некоторым причинам.
Ниже приведен фрагмент вывода systemd-analysis
Вот несколько фрагментов загрузочных логов
Установлен графический драйвер последней версии — 415 из репозитория ppa
Можете ли вы сообщить мне, почему происходит задержка из-за службы plymount-quit? Пожалуйста, дайте мне знать, есть ли какая-либо другая информация, которая вам потребуется для устранения неполадок?
Это связано с проблемой аппаратного / программного / графического драйвера?
1 ответ
Плимут не замедляет процесс загрузки! Плимут отвечает за заставку загрузки. Пожалуйста, прочитайте здесь.
Он загружает логотип загрузки в начале процесса загрузки и затем ждет, пока процесс загрузки не завершится, поэтому он выгружает заставку. Это все, что он делает, и поэтому он должен работать параллельно и сосуществовать в течение всего процесса загрузки. Это ничего не задерживает, просто ждет.
Это именно то, что происходит. Не больше и не меньше. Пожалуйста, ознакомьтесь с результатами, которые вы добавили к своему вопросу, и внимательно прочитайте следующее:
● plymouth-quit-wait.service — удерживайте до завершения процесса загрузки
Чтобы понять больше.
Пожалуйста, выполните следующую команду в терминале:
Затем ищите SystemdAnalyzePlot.svg в вашем домашнем каталоге и запустите его в программе просмотра изображений или в интернет-браузере. Возможно, вам придется увеличить изображение, чтобы вы могли прочитать имена процессов. Это стоит проверить и даст вам лучшее понимание того, как работает процесс загрузки.
Однако вы можете сократить время загрузки, отключив NetworkManager-wait-online.service так что у Плимута есть на один процесс меньше, чтобы ждать. Это действительно может сократить время загрузки. Чтобы сделать это, пожалуйста, следуйте инструкциям в этом ответе.
Ох. и, пожалуйста, оставьте Плимут в покое, это не то, что заставляет вас ждать. это то, что ждет вас
plymouth-quit-wait.service hanging up on boot
This prevents some important services from starting. I couldnt see anything significant in journalctl because this is a proxy server and it was getting blasted with rejects as the squid server wasnt running yet. here is some basic system info
only solution i could find was to kill it with 9
Responses
You may disable the plymouth service from being loaded by passing «rd.plymouth=0 plymouth.enable=0» to the kernel boot options if the graphical boot is not required. To make this changes persistent, add it to «GRUB_CMDLINE_LINUX_DEFAULT» in «/etc/default/grub» file.
Plymouth as a graphical boot system and logger isn’t really needed, unless a graphical boot animation, splash screen is needed on boot up.