
Как мне выяснить, какая служба тормозит systemd во время завершения работы, если я не могу получить журнал?
Я уже несколько дней пытаюсь выяснить, что заставляет systemd зависать, когда я пытаюсь перезагрузиться или выключиться. Он проходит часть процесса выключения, но так и не завершает его. Эта система находится на машине, доступ к которой осуществляется только через последовательную консоль. Портов Ethernet нет. Единственный доступный для записи диск — это RAM-диск, поэтому просмотр journalctl после перезагрузки бесполезен.
Архитектура — Ubuntu 18.04 на Arm64, и все, что я знаю, это следующее:
[ OK Stopping Session 3 of user root.
[ OK ] Stopped target Timers.
[ OK ] Stopped Daily apt upgrade and clean activities.
[ OK ] Stopped Daily apt download activities.
[ OK ] Stopped Daily Cleanup of Temporary Directories.
Stopping Authorization Manager...
[ OK ] Stopped Discard unused blocks once a week.
Stopping Availability of block devices...
[ OK ] Stopped target Graphical Interface.
Stopping Disk Manager...
[ OK ] Stopped target Multi-User System.
Stopping strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf...
Stopping System Logging Service...
[ OK ] Stopped target Login Prompts.
Stopping Getty on tty1...
Stopping Serial Getty on ttyS0...
Stopping Unattended Upgrades Shutdown...
Stopping Dispatcher daemon for systemd-networkd...
Stopping D-Bus System Message Bus...
Stopping Chassis Fan Service...
Stopping Regular background program processing daemon...
Stopping OpenBSD Secure Shell server...
[ OK ] Stopped Resets System Activity Data Collector.
Stopping vsftpd FTP server...
Stopping Nexcopy Graphical Interface...
[ OK ] Stopped Nexcopy Gadget Service.
Stopping LSB: Load kernel image with kexec...
Stopping LSB: HPA's tftp server...
Stopping User Manager for UID 0...
[ OK ] Stopped target Host and Network Name Lookups.
Stopping Getty on ttyGS0...
[ OK ] Stopped Message of the Day.
Stopping Network Name Resolution...
[ OK ] Stopped Network Name Resolution.
[ OK ] Stopped System Logging Service.
[ OK ] Stopped Dispatcher daemon for systemd-networkd.
[ OK ] Stopped Disk Manager.
[ OK ] Stopped strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf.
[ OK ] Stopped Regular background program processing daemon.
[ OK ] Stopped vsftpd FTP server.
[ OK ] Stopped Unattended Upgrades Shutdown.
[ OK ] Stopped Serial Getty on ttyS0.
[ OK ] Stopped Nexcopy Graphical Interface.
[ OK ] Stopped Getty on tty1.
Что бы ни вызвало зависание, скорее всего, это следующая попытка обслуживания. Как мне определить, что это?
reboot -f работает нормально, поэтому я знаю, что это не проблема с оборудованием.
Можно ли как-то заставить systemd выводить более подробную информацию о службе, которую он пытается остановить?
Я пытался:
systemctl перезагрузка --пробный запуск
Надеюсь, он скажет мне, что он пытался сделать, но, судя по всему, --dry-run игнорируется, поскольку он в любом случае инициировал настоящую процедуру выключения.
Есть ли способ заставить systemd выводить список задач, чтобы я мог видеть, что находится в очереди дальше? Имея только одну последовательную консоль для доступа, я не знаю, что еще я могу попробовать.
Есть ли у кого-нибудь предложения?
Редактировать: Один вопрос, который у меня возник после того, как я посмотрел на это, agan. ttyS0 в этой системе — это консоль и порт, на котором я вошел в систему. Я заметил, что незадолго до того, как сообщения прекратились, getty останавливается на этом порту, и поэтому, по-видимому, я вышел из системы. Может ли остановка getty помешать передаче дальнейших данных? И если да, есть ли способ обойти это?