从启动中删除evolution-calendar-factory
有没有办法从启动中删除它?
我不需要它,我根本不使用进化论。
Ubuntu不允许你删除evolution-calendar-factory
因为这是一个由许多程序共享的库。
如果你尝试执行: sudo apt-get purge evolution-data-server
或sudo apt-get remove evolution-data-server
你的系统将被破坏!
您可以使用-s
标志(模拟)在终端中测试这些命令(小心!)
sudo apt-get remove evolution-data-server -s
您将看到ubuntu-gnome-desktop
将被删除,并且在下次重新启动后,您将无法再登录系统。 🙁
所以,不要删除evolution-data-server
。
我没有安装Evolution,但仍然运行。
通过软件中心删除软件包evolution-data-server
。 或者将其输入终端: sudo apt-get purge evolution-data-server
。 然后退出并重新登录,它应该消失了。
如果你想删除evolution-data-server
,它将至少删除这些(在16.04测试)
The following packages will be REMOVED: evolution-data-server gdm3 gnome-contacts gnome-shell libfolks-eds25 0 upgraded, 0 newly installed, 5 to remove and 378 not upgraded. After this operation, 15.8 MB disk space will be freed.
所以,更好的治疗方法有点讨厌,但它有效!
令人讨厌的黑客!
重命名Evolution二进制文件夹,以便找不到它! 对我有用的是这些
sudo mv /usr/lib/evolution-data-server /usr/lib/evolution-data-server-disabled sudo mv /usr/lib/evolution /usr/lib/evolution-disabled
而已! 现在,我至少可以使用该系统。
注意:如果你以这种方式禁用进化,你将无法使用日历同步或其他花哨(对我来说无用)的东西。
不那么脏的黑客(更新)
看起来越来越多的人最近对进化不满意。 但在我当前的设置中,我不重命名该文件夹。 相反,我只是删除可执行位,它的工作原理。
为了禁用日历过程,我使用了
sudo chmod -x /usr/lib/evolution/evolution-calendar-factory
这种方法的好处是其他进化服务仍然可以工作(它们启动和运行)
如果你想关闭它们,请对evolution-source-registry
和evolution-addressbook-factory
重复相同的过程!
如果您正在使用Gnome或Gnome-Shell,那么您似乎无法删除evolution-data-server,因为它也将删除整个DE
root@europa:/home/user# apt remove evolution-data-server Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: evolution-data-server gdm3 gnome-contacts gnome-shell gnome-shell-extension-weather gnome-shell-extensions libfolks-eds25 0 upgraded, 0 newly installed, 7 to remove and 6 not upgraded. After this operation, 17,5 MB disk space will be freed. Do you want to continue? [Y/n] n
如果您仍想摆脱那些烦人且资源贪婪的进程,您只需删除(或者,更好地,重命名)其可执行文件的目录:
root@europa:/home/user# mv /usr/lib/evolution /usr/lib/evolution_DISABLE
然后杀死所有正在运行的进程:
root@europa:/home/user# for procname in $(ps aux | grep evolution | awk -F'/' '{print $NF}' | grep evolution | grep -v grep); do killall $procname; done
这样,Gnome将无法重新启动它们。
为我工作没有任何明显的附带损害。
您可以使用systemd屏蔽单位(在Ubuntu 18.04,Unity上测试):
systemctl --user mask evolution-addressbook-factory.service evolution-calendar-factory.service evolution-source-registry.service
注销/登录后,服务将不再启动。
那么,如果您认为上述答案对您的系统来说太有毒了(扯掉gnome-desktop先决条件,删除/重命名打包文件?不,谢谢!),我可能会为您提供解决方案。
创建~/.config/upstart/kill-evolution-services.conf
并使用以下代码填充它。 请务必使用您的用户名替换USER。
start on desktop-start stop on desktop-end script ME=USER GIVEUP=60 while ! pgrep -u "$ME" -f '^/usr/lib/evolution/evolution'; do GIVEUP=$((GIVEUP - 1)) if test $GIVEUP = 0; then break fi sleep 1 done pkill -u "$ME" -f '^/usr/lib/evolution/evolution' end script
这将在登录时运行,等待进化服务开始(最多60秒,可通过GIVEUP调整),然后杀死它们。 从我所看到的(16.04),他们将一直死,直到你与一些需要它们的应用程序交互,比如gnome-calendar(应用程序,而不是指标)。 要解决此问题,您可以将以下内容添加到crontab(从终端运行“crontab -e”)。 同样,请务必使用您的用户名替换USER。
*/1 * * * * pkill -u USER -f '^/usr/lib/evolution/evolution'
这将尝试每分钟杀死一次进化服务。
所以我们摆脱了进化服务,而不是疯狂甚至打电话给sudo
。 据称这些服务的内存使用问题已在Gnome 3.20中得到修复,但Ubuntu还没有将它们反向移植到3.18。 请关注https://bugs.launchpad.net/ubuntu/+source/indicator-datetime/+bug/1589605 ,即使它与指标日期时间无关,我可以告诉他们。 无论如何,指示灯在lightdm登录时运行良好而没有进化服务。
如果其中任何一个最终对您的配置产生副作用,您只需删除~/.config/upstart/kill-evolution-services.conf
并删除crontab行(再次从终端删除crontab -e
)。 如果你是偏执狂,那么请退出并重新登录。
我没有尝试删除它,因为我运行gnome,但是工作是将systemd单元文件复制到/ etc并将ExecStart设置为/ bin / ls:
cp /usr/lib/systemd/user/evolution-calendar-factory.service /etc/systemd/user/ cp /usr/lib/systemd/user/evolution-source-registry.service /etc/systemd/user/
并在单元文件中确保ExecStart是/ bin / ls:
ExecStart=/bin/ls
然后做
systemctl --user daemon-reload systemctl --user restart evolution-source-registry systemctl --user restart evolution-calendar-factory
请注意,执行“systemctl disable –user evolution-source-registry”似乎没有任何效果。