Slow boot because of plymouth-quit-wait.service
I am using PopOS as my OS I noticed that it takes too long to boot-up the reason might be because I use a HDD but, when I was using ubuntu the boot time was faster So, I checked the boot time with systemd-analyze command this was the result:
Startup finished in 3.998s (kernel) + 44.094s (userspace) = 48.093s graphical.target reached after 44.028s in userspace
then I checked which process makes it slow by using this systemd-analyze blame command and this was the result:
29.893s plymouth-quit-wait.service 9.881s networkd-dispatcher.service 8.984s accounts-daemon.service 7.326s udisks2.service 6.843s systemd-journal-flush.service 6.358s fwupd.service 5.468s system76-power.service 4.872s polkit.service 4.309s dev-sda3.device 4.219s avahi-daemon.service 4.138s NetworkManager.service 4.123s switcheroo-control.service 4.119s thermald.service 4.115s systemd-logind.service 4.115s wpa_supplicant.service 3.147s ModemManager.service 2.954s gdm.service 2.694s gpu-manager.service 2.662s grub-initrd-fallback.service 2.523s grub-common.service 2.490s apport.service 2.260s apparmor.service 1.688s e2scrub_reap.service 1.612s systemd-resolved.service 1.561s lvm2-monitor.service 1.296s [email protected] 1.185s networking.service 1.025s systemd-udevd.service 961ms rsyslog.service 892ms systemd-modules-load.service 790ms [email protected] 724ms keyboard-setup.service 623ms systemd-sysusers.service 528ms systemd-udev-trigger.service 481ms systemd-random-seed.service 461ms systemd-rfkill.service 426ms colord.service 401ms systemd-sysctl.service 333ms upower.service 321ms systemd-tmpfiles-setup-dev.service 305ms systemd-tmpfiles-setup.service 277ms ifupdown-pre.service 257ms dev-mapper-cryptswap.swap 251ms ufw.service 182ms systemd-journald.service 180ms systemd-user-sessions.service 174ms pppd-dns.service 126ms systemd-remount-fs.service 104ms systemd-timesyncd.service 91ms dev-hugepages.mount 90ms dev-mqueue.mount 89ms sys-kernel-debug.mount 88ms sys-kernel-tracing.mount 87ms blk-availability.service 84ms kmod-static-nodes.service 64ms setvtrgb.service 54ms console-setup.service 37ms [email protected] 35ms systemd-update-utmp.service 24ms rtkit-daemon.service 13ms plymouth-start.service 11ms plymouth-read-write.service 8ms alsa-restore.service 5ms systemd-update-utmp-runlevel.service 5ms resolvconf-pull-resolved.service 3ms sys-fs-fuse-connections.mount 2ms sys-kernel-config.mount 1ms finalrd.service
- What it does?
- If it’s not necessary than how to disable it?
- Is there any other unnecessary process in the list that I can remove if yes than how
Сделайте загрузку Linux быстрее, отключив ненужные службы
Все больше и больше операционных систем раздуваются множеством служб, работающих в фоновом режиме. Хотя они могут не использовать много процессорного времени, они увеличивают время загрузки и использование оперативной памяти.
Некоторые дистрибутивы Linux включают «все, кроме кухонной раковины», чтобы облегчить жизнь пользователей. Благодаря этому такие вещи, как совместное использование файлов или печать, работают прямо из коробки. К сожалению, единственный способ сделать это — включить сотни утилит, чтобы каждый нашел то, что ему нужно.
К счастью, операционные системы с открытым исходным кодом дают вам возможность и свободу делать то, что вы считаете нужным. Это означает, что вы можете отключить или удалить все, что вам не нужно. Здесь будет рассмотрен первый вариант, как отключить службы. Когда вы отключаете, а не удаляете компоненты, уменьшается риск безвозвратной поломки. И вы можете вернуться к тому, как это было раньше, просто повторно включив службу, если вы заметили, что что-то полезное перестало работать.
Анализируйте время, необходимое для загрузки каждой службы
Большинство операционных систем на базе Linux перешли на Systemd. Среди включенных в него утилит есть программа, которая позволяет вам анализировать, насколько быстро загружается ваша система. В частности, он показывает общее время, необходимое для загрузки, и время, необходимое для загрузки каждой службы. Обратите внимание, что некоторые службы загружаются параллельно. Таким образом, если одному требуется две секунды для загрузки, а другому — три секунды, это не обязательно означает, что всего требуется пять секунд. Это может быть намного меньше.
Откройте эмулятор терминала и введите эту команду:
systemd-analysis
Это показывает, сколько времени требуется для загрузки ядра Linux и базовых системных служб, что означает, что не учитывается время, необходимое графическому интерфейсу для загрузки. Другими словами, это показывает, сколько времени требуется с момента загрузки ядра до того, как вы перейдете в консоль Linux, которая выглядит так, как показано ниже.
Если бы у вас не был установлен графический интерфейс, он бы вас встретил на экране.
Однако вы также можете увидеть время, необходимое графическому интерфейсу для инициализации, с помощью этой команды:
systemd-analysis critical-chain graphical.target
Это показывает, что графический интерфейс пользователя загружается за 2,126 секунды. Это не учитывает время, необходимое для загрузки настольных утилит. Чтобы включить / отключить их, запустите диспетчер запуска среды рабочего стола.
Наконец, возможно, наиболее полезная команда для целей этого руководства:
systemd-analysis виноват
Вы можете перемещаться по списку с помощью клавиш со стрелками или PAGE UP и PAGE DOWN . Нажмите q , чтобы выйти.
Используйте systemctl для отключения ненужных служб
Как вы можете видеть на предыдущем рисунке, для загрузки службы snapd требуется 1,295 секунды. На SSD это незначительно. Но на жестком диске такое время может составлять порядка нескольких секунд, и в конечном итоге они составят очень много. Кроме того, на SSD многие вещи загружаются параллельно с невероятной эффективностью. На жестком диске службам очень сложно загружаться параллельно. Считывающие головки, плавающие на пластинах диска, должны перемещаться из сектора в сектор, поэтому практически невозможно читать данные параллельно.
Для упрощения представьте следующее: если на SSD вы увидите пять служб, для загрузки которых требуется одна секунда, вполне вероятно, что общее время, необходимое для загрузки всех из них, может быть менее 1,2 секунды. Если на жестком диске вы видите, что те же пять служб инициализируются за одну секунду, вполне вероятно, что общее время загрузки намного превышает пять секунд.
Допустим, вам не нужна служба snapd, которая предоставляет доступ к снимкам контейнерных приложений. Вы можете отключить его с помощью этой команды:
sudo systemctl disable snapd.service
Но если вы перезагрузитесь, вы заметите, что демон оснастки все еще работает. Это потому, что другие зависимости могут запускать его, даже если он отключен. Попробуйте посмотреть, что это могут быть:
systemd-analysis виноват | grep snap
Здесь виноваты snapd.seeded.service и snapd.socket . Дочерняя служба может запросить запуск своей родительской службы. Когда вы отключаете его, вы просто указываете, что он не запускается автоматически при загрузке. Но есть метод грубой силы, чтобы обойти эту проблему.
Используйте systemctl для маскировки службы
sudo systemctl mask snapd.service
Это в основном делает файл службы нулевым, так что приложения не могут запустить службу.
В большинстве случаев отключить службу не так уж и сложно. Этот пример был выбран, чтобы показать вам, как справляться с более сложными сценариями. В этом случае необходимо отключить или замаскировать также snapd.seeded.service и snapd.socket .
Ниже показано улучшенное время загрузки.
Заключение
С 4.078 время загрузки было сокращено до 3,452 секунды, что составляет сокращение примерно на 15%. Неплохо, учитывая, что была отключена только одна служба, и это на SSD. На жестком диске гораздо легче получить более значимые результаты.
В этом конкретном примере другие службы можно было отключить с помощью такой команды, как: sudo systemctl mask avahi-daemon.service ModemManager.service Thermald.service pppd-dns.service .
Если вы предпочитаете графическое приложение для управления вашими услугами, вы можете взглянуть на проект Systemd Manager. Однако вы будете ограничены в том, что вы можете с ним делать, поскольку командная строка предлагает гораздо большую гибкость.
9 комментариев
«Это означает, что вы можете отключить или удалить все, что вам не нужно».
Это предполагает, что человек ЗНАЕТ, что нужно, а что нет. Отключение служб волей-неволей могло привести к отключению системы. Со времен Windows я помню, что есть сайты, которые помогают определить, какие службы / приложения можно отключить. Я не знаю аналогичных сайтов по Linux. «Большинство операционных систем на базе Linux перешли на Systemd».
Возможно, из-за своей склонности контролировать все, именно systemd вызывает медленную загрузку. Кроме того, несмотря на то, что «большинство операционных систем на базе Linux перешли на Systemd», есть еще немало, которые используют другое программное обеспечение для инициализации. Вы напишете дополнительную статью о инициативах, отличных от systemd?
Знаете ли вы о листинге, который сообщал бы нам, какие услуги, возможно, безопасны и «не трогайте». Думаю, большинство из нас хотели бы попробовать, но у них нет знаний, чтобы отключать или откладывать услуги, и сомневаюсь, что у вас есть время, чтобы подержать нас за руки.
Ну, сначала погуглить. Если вы ищете сервис и не можете найти информацию о том, что он делает, скорее всего, это что-то важное, основное для ОС, о котором никто не говорит. Что касается командной строки, вот пример для семейства Debian: systemctl cat libvirtd.service Это будет список содержимого служебного файла. Здесь я найду эту строку: ExecStart=/ usr / sbin / libvirtd $ libvirtd_opts Теперь я могу найти и посмотреть, какой пакет установил этот файл: dpkg -S / usr / sbin / libvirtd И, наконец, по выходным данным этой команды я вижу, что делает пакет: apt показать libvirt-daemon И я даже могу смоделировать удаление пакета, чтобы увидеть, какие другие зависимые пакеты будут удалены: apt -s удалить libvirt-daemon Нет простого способа сказать вам, что вам нужно, а что нет. Это действительно зависит от вашего варианта использования.
Я проверяю открытый порт и закрываю этот открытый порт. Закрытый порт означает остановку обслуживания. Я думаю, что один дистрибутив solyd поставляется с портом init 1, который всегда слушает. Я использую ноутбук отдельно, так что saned, cups, avahi daemon must go. Некоторые дистрибутивы по умолчанию поставляются с таким количеством запусков служб.
В дни, когда я был в Windoze, у меня было приложение, которое откладывало запуск служб, и я мог устанавливать время задержки для каждого из них. Это сработало довольно хорошо. Он сокращал время загрузки на минуту и медленно добавлял их после того, как я читал электронную почту, раскладывал пасьянс или что-то еще.
Добрый день, 28.300s apt-daily.service
20.913s plymouth-quit-wait.service эти 2 службы требуют много времени загрузки. Безопасно ли замаскировать эти 2 сервиса?
Они занимают ок. 60% времени загрузки. ждем вашего ответа,
с уважением
Wim dekkers
Первый сервис автоматически обновит базу данных вашего менеджера пакетов. И, в зависимости от того, какие утилиты вы установили, он также может обновлять определенные пакеты, например, автоматические обновления безопасности. Если эти службы работают в фоновом режиме, их нет смысла удалять. Я имею в виду, что они могут чего-то ждать в фоновом режиме, даже если ваш рабочий стол уже отображается. Таким образом, они действительно не заставляют ваш компьютер загружаться через 28 секунд. Например, служба APT может просто ждать подключения к Интернету. Однако, если вы чувствуете, что они вызывают у вас задержку, прочтите это: https://askubuntu.com/questions/800479/ubuntu-16-04-slow-boot-apt-daily-service Если вы замаскируете службу apt, не забудьте «sudo apt update && sudo apt upgrade» вручную и периодически. Я говорю: маскируйте их только в том случае, если они действительно замедляют загрузку. В противном случае оставьте их включенными, они пригодятся. Воспользуйтесь таймером на телефоне и посмотрите, есть ли разница между активным и неактивным. Разница означает разницу во времени более 20%. Если на одной загрузке у вас будет 40 секунд, а на другой — 39, на самом деле это не разница. Вы всегда будете получать небольшие различия, даже если одни и те же службы загружаются несколько раз. Вы можете сократить время загрузки на несколько секунд, если отключите загрузочные экраны. Сервис Plymouth обычно активен на компьютерах, на которых используются графические загрузочные анимации / изображения / индикаторы выполнения (хотя он может иметь и другие цели). Используйте команду «apt –purge autoremove [name-of-package]», чтобы избавиться от ненужных вещей. –Purge также удаляет файлы конфигурации, связанные с пакетом.
–Purge на самом деле — — очистка, два знака минус один за другим (без пробела между ними). Раздел комментариев автоматически исправляет последовательные минусы до тире или чего-то подобного.
Спасибо, Александру. Удаляю сервис plymouth, касающийся рабочего стола Budgie Desktop. Некоторое время назад я установил Budgie, но больше им не пользовался. Я экономлю ок. 10 секунд во время загрузки.
Спасибо
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
running intel graphics on this motherboard: Manufacturer: ASUSTeK COMPUTER INC. Product Name: Z97-AR rxlx backups $ rpm -qa | grep mouth plymouth-theme-spinner-0.9.4-7.20200615git1e36e30.el8.x86_64 plymouth-theme-charge-0.9.4-7.20200615git1e36e30.el8.x86_64 plymouth-0.9.4-7.20200615git1e36e30.el8.x86_64 plymouth-scripts-0.9.4-7.20200615git1e36e30.el8.x86_64 plymouth-plugin-two-step-0.9.4-7.20200615git1e36e30.el8.x86_64 plymouth-system-theme-0.9.4-7.20200615git1e36e30.el8.x86_64 plymouth-core-libs-0.9.4-7.20200615git1e36e30.el8.x86_64 plymouth-plugin-label-0.9.4-7.20200615git1e36e30.el8.x86_64 plymouth-graphics-libs-0.9.4-7.20200615git1e36e30.el8.x86_64 rxlx backups $ cat /etc/redhat-release Red Hat Enterprise Linux release 8.3 (Ootpa) rxlx backups $ uname -r 4.18.0-240.22.1.el8_3.x86_64
only solution i could find was to kill it with 9
Started 2021-04-23T19:58:21+00:00 by
Community Member 60 points
Systemd-analyze — анализ системных процессов
Systemd-analyze — утилита, которая используется для просмотра отчетов о производительности системы. С помощью systemd-analyze можно получить информацию о том, сколько времени потребовалось для загрузки системы, а также сколько времени потребовалось для запуска каждого модуля.
Для просмотра информации о количестве времени, которое затрачивается при загрузке системы с разбивкой на ядро и пользовательское пространство, необходимо выполнить следующую команду:
systemd-analyze
Startup finished in 1.557s (kernel) + 4.996s (initrd) + 45.794s (userspace) = 52.348s graphical.target reached after 45.780s in userspace
Также можно просмотреть подробную информацию о затраченном времени каждым блоком (процессом) в отдельности, для этого используется следующая команда:
systemd-analyze blame
25.298s plymouth-quit-wait.service 17.432s dnf-makecache.service 15.769s accounts-daemon.service 13.800s udisks2.service 9.440s postfix.service 5.744s vmware.service 5.604s initrd-switch-root.service 4.708s NetworkManager-wait-online.service 4.668s systemd-udev-settle.service 3.925s avahi-daemon.service 3.546s lvm2-monitor.service 3.343s lm_sensors.service 3.108s smartd.service 2.957s usbsrvd.service 2.721s sshd.service 2.216s ModemManager.service 2.212s NetworkManager.service 2.143s chronyd.service 1.830s systemd-homed.service 1.826s sysstat.service 1.814s systemd-logind.service 1.789s upower.service 1.596s rtkit-daemon.service .
С помощью полученной информации можно оптимизировать время загрузки системы. Список отсортирован по затраченному времени в порядке убывания.
Так как список процессов может быть довольно большим, существует возможность отсортировать вывод при помощи команды head (обычно первых 10 записей достаточно, чтобы найти требующие большого количества времени службы):
systemd-analyze blame | head
Также можно просмотреть подробную информацию в виде дерева критической по времени цепочки событий. Для этого необходимо выполнить команду:
systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character. The time the unit took to start is printed after the "+" character.
graphical.target @45.780s └─multi-user.target @45.780s └─plymouth-quit-wait.service @20.481s +25.298s └─systemd-user-sessions.service @20.211s +156ms └─remote-fs.target @20.176s └─remote-fs-pre.target @20.176s └─nfs-client.target @16.448s └─gssproxy.service @15.158s +1.266s └─network.target @15.140s └─wpa_supplicant.service @42.982s +143ms └─basic.target @11.186s └─dbus-broker.service @10.563s +618ms └─dbus.socket @10.556s └─sysinit.target @10.548s └─systemd-userdbd.service @31.778s +78ms └─systemd-userdbd.socket @4.150s └─system.slice └─-.slice
В выводе можно увидеть цепочку событий, отсортированных по времени (когда служба стала активной) в порядке убывания.
Значение после символа «@» в каждом событии — это время, когда служба стала активной.
Значение после символа «+» в каждом блоке показывает время, которое потребовалось для запуска службы.
Из полученной выше информации можно установить, какие службы запускаются дольше и, в свою очередь, вызывают медленную загрузку системы.
Такие службы можно отключить, если они не требуются для запуска при загрузке. Кроме того, можно отключить все службы, которые занимают меньше времени, но не требуются при загрузке, поскольку они также влияют на время загрузки системы.
Для того чтобы отключить какую-либо службу, необходимо выполнить следующую команду:
systemctl disable
Systemd-analyze также позволяет получить и другие данные о состоянии и трассировке системы. Для ознакомления с дополнительной информацией о работе с утилитой и ее возможностях просмотрите справку:
man systemd-analyze
Дата последнего изменения: 14.07.2022
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.