截至今天凌晨,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