mercurial@providence:~$ systemd-analyze Startup finished in 7.913s (kernel) + 20.621s (userspace) = 28.534s graphical.target reached after 20.605s in userspace
Вот чего я добился после исправления некоторых проблем. Как видите, время запуска постепенно уменьшается с 1 мин 5 сек до 28 сек.
1. sudo update -initramfs -u -k all :Время ядра
Это кричало во все горло, что я пытался возобновить работу с устройства, которое не было найдено, т.е. у меня был блок возобновления
grub.cfg
cryptsetup: ERROR: Couldn't resolve device UUID=fee92c6d-7b60-4014-a66b-c48cd9094162
Это просто баг,
cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries nor crypto modules. If that's on purpose, you may want to uninstall the 'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs integration and avoid this warning.
И эта замечательная строка кода просила меня объявить новый раздел подкачки, чтобы моя система могла возобновить работу с него,
I: The initramfs will attempt to resume from /dev/sda7 I: (UUID=c0198c37-f28b-41f5-bb0f-37d575e86896) I: Set the RESUME variable to override this.
Я так и сделал,
mercurial@providence:~$ cat /etc/initramfs-tools/conf.d/resume RESUME=UUID=c0198c37-f28b-41f5-bb0f-37d575e86896
2. systemd -анализировать вину :Userspace Time
Моему сетевому менеджеру потребовалось некоторое время, чтобы подключиться к Интернету, поэтому все, что мне нужно было сделать, это замаскировать его.
sudo systemctl mask NetworkManager-wait-online.service
РЕЗУЛЬТАТЫ
Теперь у меня время загрузки сократилось до 28 секунд, и вот моя вина и критическая цепочка,
mercurial@providence:~$ systemd-analyze critical-chain The time after the unit is active or started is printed after the "@" character. The time the unit takes to start is printed after the "+" character. graphical.target @20.605s └─udisks2.service @9.969s +10.636s └─basic.target @9.515s └─sockets.target @9.515s └─dbus.socket @9.515s └─sysinit.target @9.333s └─swap.target @9.333s └─dev-disk-by\x2duuid-c0198c37\x2df28b\x2d41f5\x2dbb0f\x2d37d575e86896.swap @8.843s +490ms └─dev-disk-by\x2duuid-c0198c37\x2df28b\x2d41f5\x2dbb0f\x2d37d575e86896.device @8.841s mercurial@providence:~$ systemd-analyze blame 10.636s udisks2.service 6.628s dev-sda6.device 5.486s ModemManager.service 4.935s accounts-daemon.service 4.346s exim4.service 4.156s NetworkManager.service 3.211s bluetooth.service 3.203s atd.service 3.174s apt-daily.service 3.132s pppd-dns.service 3.128s alsa-restore.service 2.765s systemd-logind.service 2.762s avahi-daemon.service 2.751s rsyslog.service 2.750s wpa_supplicant.service 2.594s networking.service 2.168s lightdm.service 2.148s plymouth-quit-wait.service 2.024s upower.service 1.975s systemd-udevd.service 1.955s apparmor.service 1.718s polkit.service 1.412s systemd-tmpfiles-setup.service 1.161s colord.service 1.000s systemd-rfkill.service
Я считаю, что есть много возможностей для улучшения, поэтому я просто подожду, пока какие-нибудь заядлые системные администраторы прольют свет. Спасибо.
I would like to see everything that happens when I run the command so I can debug it and get it running.
libinput-gestures-setup
— простой сценарий Bash. Вы можете просто посмотреть на него и посмотреть, что он делает. Чтобы «отладить» его, вы можете добавить опцию set -x
в его начало, и он будет запускать весь скрипт в режиме отладки --, т. е. трассировки каждой команды плюс ее аргументы выводятся на стандартный вывод. Или вместо того, чтобы редактировать его, чтобы добавить параметр, вы можете просто запустить его вот так:
bash -x libinput-gestures-setup start