上一主题:“zeitgeist-daemon:是什么让它不断重新启动以及如何让它停止?”
更新主题(如果我错了可以恢复):也许,这个问题实际上应该是“为什么 systemctl 没有列出/管理 zeitgeist-daemon,以及实际上是什么/谁做了什么?”,如:任何服务怎么可能不被管理?除非我还不知道如何正确使用它,如果是这样的话我稍后会在这里编辑。
Ubuntu 16.04
自从我安装了它之后,很长一段时间里,我的电脑都很慢,一切都慢得要命。系统负载经常在指示器上很高(这可能是由此引起的另一个问题)。我无法理解到底发生了什么,我以为是我的硬盘、内存有缺陷,或者所有其他正在运行的进程出了问题……
令我惊讶的是,我遵循了以下步骤:
https://nixaid.com/disable-zeitgeist-in-ubuntu-16-17/
主要是sudo apt-get purge zeitgeist-datahub
(我们不能完全卸载 zeitgeist,因为它会卸载 Unity3D/compiz,这很糟糕!)
重启后我的机器速度快了很多!
应用程序打开和运行速度都更快了!
但...
唯一不起作用的是这个命令:
systemctl --user list-unit-files |grep -i zeitgeist
它什么都没有返回。
所以我需要知道,这个可执行文件在哪里配置为继续重启?
zeitgeist-daemon
我sudo grep
/etc 也没有找到任何内容。
我每 3 秒循环一次zeitgeist-daemon --quit
,以使我的旧机器保持快速如新!
但我更喜欢正确地禁用zeitgeist-daemon
自动重启。
附言:我尝试了其他答案,但都是针对较旧的 ubuntu 版本或黑客行为(例如重命名该可执行文件,请不要误解我的意思,这很酷,因为它可以快速解决问题,但作为最后的手段,可能会导致与其他应用程序的不可预测的交互,具体取决于正确的设置/配置)。我想要一些更“系统安全”的东西,以防止破坏其他我以后可能难以跟踪和理解的东西。
PS.2:我并不是说 zeitgeist 不好,但是在我的硬件上它确实存在很多问题,我差点就放弃了,买了一台新机器。但是我认为它的功能很棒,可以帮助查看最近使用的文件等,现在我没有这些功能,但是由于我的机器响应速度更快,我现在更加满意了。如果 zeitgeist 可以减少对整个系统的负担,我肯定会重新启用它!
好的,发现了一些东西
locate -i -r ".*zeit.*[.]service$"
/usr/share/dbus-1/services/org.gnome.zeitgeist.fts.service
/usr/share/dbus-1/services/org.gnome.zeitgeist.service
Exec = / bin / sh -c“ / usr / lib / x86_64-linux-gnu / zeitgeist / zeitgeist-maybe-vacuum; / usr / bin / zeitgeist-daemon”
现在,如何执行一些其他的安全命令(如systemctl
),这些命令实际上知道它并禁用它,以确保不会出现任何其他问题?(当然尽可能确保)
我尝试了这里的所有列出命令(没有显示任何内容grep zeit -i
):
https://www.tecmint.com/manage-services-using-systemd-and-systemctl-in-linux/
来自手册页:
EXIT CODES
0 Zeitgeist terminated normally.
1 An unspecified error occurred.
10 There is already a running Zeitgeist instance.
21 Could not access the database file.
22 The database file is locked.
使用@Jos 提示(谢谢!)似乎很安全,因为chmod -rw ~/.local/share/zeitgeist/activity.sqlite
应该提供预期的代码 21,如果是预期的,那么它是安全的:)
我仍然必须尝试手动编辑我找到的服务文件以查看会发生什么,但如果不使用应用程序来执行此操作,则可能会在以后导致问题......所以手动编辑它不是我喜欢的,只是一个测试。
答案1
正如您的搜索结果所示,这是一项 DBus 服务。据我所知,没有命令可以禁用 DBus 服务 - 当某些东西通过 DBus 请求该服务时,它们就会启动。DBus 问题跟踪器上的这条评论表示禁用它们的一种方法是使用 中的匹配文件覆盖它~/.local/share/dbus-1/services
。例如:
$ cat ~/.local/share/dbus-1/services/org.gnome.zeitgeist.Engine.service
[D-BUS Service]
Name=org.gnome.zeitgeist.Engine
Exec=true
SystemdService=zeitgeist.service
这样,文件 zeitgeist-daemon 就不再自动为我启动了。
答案2
这是对已接受答案的补充https://askubuntu.com/a/1051702/46437
这个(仍然很简单)脚本可以轻松禁用任何 dbus 服务
#!/bin/bash
set -Eeu
trap 'echo "error $? at line $LINENO"' ERR
strExecutable="$1"
function FUNCechoE(){
echo "Err: $@" >&2
return 0
}
function FUNCechoW(){
echo "Wrn: $@" >&2
return 0
}
strMatches="`egrep "$strExecutable" /usr/share/dbus-1/services/* -c |grep -v :0`" &&: #returns 1 always even if succeeds??
declare -p strMatches
if((`echo "$strMatches" |wc -l`!=1));then
FUNCechoE "more than one match found"
exit 1
fi
strFile="`echo "$strMatches" |sed -r 's@(.*)(:[[:digit:]]*)@\1@'`"
declare -p strFile
if [[ ! -f "$strFile" ]];then
FUNCechoE "can't find file"
exit 1
fi
function FUNCcoldf() {
colordiff -y "$strFile" "$strTargetFL"&&:
return 0
}
strTargetFL="$HOME/.local/share/dbus-1/services/`basename "$strFile"`"
declare -p strTargetFL
if [[ -f "$strTargetFL" ]];then
FUNCcoldf
FUNCechoW "disabler override already set"
exit 0 #not a problem to be solved
fi
cat "$strFile" |sed 's@Exec=.*@Exec=true@' >"$strTargetFL"
FUNCcoldf
输入参数是您可以通过ps
等找到的服务可执行文件
目前还不适用于所有服务,所以如果有人找到让它更好地工作的方法,只要说出来就可以了:)
附言:元答案嵌套会很有趣