解决之道。

解决之道。

截至今天凌晨,journalctl日志中已充斥着数百万个错误,每个错误的形式如下:

mei 07 08:04:47 Ophelia gnome-shell[2197]: JS ERROR: TypeError: null has no properties
                                           _onFocusChanged@resource:///org/gnome/shell/ui/closeDialog.js:135:9
                                           popModal@resource:///org/gnome/shell/ui/main.js:587:22
                                           _continueDeactivate@resource:///org/gnome/shell/ui/screenShield.js:523:18
                                           deactivate/<@resource:///org/gnome/shell/ui/screenShield.js:493:44
                                           finish@resource:///org/gnome/shell/gdm/authPrompt.js:517:13
                                           finish@resource:///org/gnome/shell/ui/unlockDialog.js:845:26
                                           deactivate@resource:///org/gnome/shell/ui/screenShield.js:493:26
                                           _onUserBecameActive@resource:///org/gnome/shell/ui/screenShield.js:305:18
                                           _wakeUpScreen@resource:///org/gnome/shell/ui/screenShield.js:475:14
                                           _init/<@resource:///org/gnome/shell/ui/unlockDialog.js:554:69
                                           _countChanged@resource:///org/gnome/shell/ui/unlockDialog.js:272:18
                                           _sourceAdded/obj.sourceCountChangedId<@resource:///org/gnome/shell/ui/unlockDialog.js:201:18
                                           countUpdated@resource:///org/gnome/shell/ui/messageTray.js:791:15
                                           pushNotification@resource:///org/gnome/shell/ui/messageTray.js:852:14
                                           showNotification@resource:///org/gnome/shell/ui/messageTray.js:857:14
                                           processNotification@resource:///org/gnome/shell/ui/notificationDaemon.js:469:18
                                           _notifyForSource@resource:///org/gnome/shell/ui/notificationDaemon.js:355:16
                                           NotifyAsync@resource:///org/gnome/shell/ui/notificationDaemon.js:226:18
                                           _handleMethodCall@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:371:35
                                           _wrapJSObject/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:404:34

前几行之后的确切文本有时会有所不同,但它们看起来都像这样。当时电脑开着,但我没有在上面做任何工作。此外,当我从一个应用程序窗口切换到另一个应用程序窗口时,gnome 界面今天明显变慢了。如果我top在终端窗口中运行命令并来回切换,我可以清楚地看到该systemd-journal进程在一段时间内占用了 100% 的 CPU。

有人注意到这样的事情吗?这是 Gnome-shell 中的错误吗?

编辑:这些错误的开始与某个unattended-upgrades进程相吻合。从历史记录中,我可以看到这些软件包是在今天早上升级的:

firefox
firefox-locale-en
firefox-locale-nl
libapache2-mod-php7.4
libldap-2.4-2
libldap-common
php7.4-cli
php7.4-common
php7.4-json
php7.4-mysql
php7.4-readline
php7.4-opcache

然而,没有一个人明显是罪魁祸首。

答案1

这不是问题的真正答案,而是一种解决方法:停用并重新激活 Dash-to-Panel Gnome 扩展(在 extensions.gnome.org 上)有帮助。也就是说,从一个应用程序Alt切换Tab到另一个应用程序现在要快得多,并且systemd-journal在切换后不再需要 100%。

我还没有检查是否journalctl仍然显示那么多错误,因为它们一次只能查看一个屏幕,而且仍然有数百万条消息。几天后,我将清理日志(使用vacuum我今天发现的关键字),如果消息与预期相反,仍然出现,我会在这里报告。

答案2

解决之道。

2 编辑同一文件。关闭对 system-d 日志的记录。

FileName='/etc/systemd/journald.conf'

########## 第一次编辑 ######################

要替换的线路

FindLine='#RateLimitIntervalSec='

显示要编辑的行

cat $FileName | grep --color -E "^|$FindLine"

替代品

ReplaceWith='#RateLimitIntervalSec=0s'

代替

sudo sed -i "/$REPLACE/c\$ReplaceWith" $FileName

显示编辑的行

cat $FileName | grep --color -E "^|$FindLine"

在此处输入图片描述

----------------------------------------------------------------------------------------------------------

############### 第二次编辑 ##########################

要替换的线路

FindLine='#RateLimitBurst='

显示要编辑的行

cat $FileName | grep --color -E "^|$FindLine"

替代品

ReplaceWith='#RateLimitBurst=0s'

代替

sudo sed -i "/$REPLACE/c\$ReplaceWith" $FileName

显示编辑的行

cat $FileName | grep --color -E "^|$FindLine"

重新启动 System-D 日志

systemctl restart systemd-journald

相关内容