如何阻止 snapd 自动更新?

Sha*_*hin 47 networking snap

我刚刚安装了 Ubuntu 18.04。几分钟后,我注意到我的带宽非常低。我安装nethogs并意识到/usr/lib/snapd/snapd正在消耗我的互联网。

问题:

  1. 我怎样才能禁用它?它真的阻止我使用互联网。
  2. 安装 Ubuntu 时可以禁用 snap 包系统吗?

非常感谢,

小智 41

  1. 您可以通过单击开始按钮然后搜索“启动应用程序”并像这样更改设置来禁用服务的自动启动。


  1. 如果这些答案没有帮助,您可以执行以下操作:

    sudo systemctl mask snapd.service- 通过将其链接到 /dev/null 来完全禁用该服务;您无法手动启动该服务或启用该服务。

    sudo systemctl unmask snapd.service - 删除指向 /dev/null 的链接并恢复启用和/或手动启动服务的能力


如果您需要更新 snap 程序,您可以取消屏蔽并启动该服务,然后使用命令 snap refresh

  • 安全更新是不时使用 1Mb/s 几秒钟(可能在屏幕锁定时),而不是在我玩游戏时使用 1Mb/s 五分钟,这是对我的互联网连接的明显滥用。在做几次 `lsof` 之前,我认为这是一些奇怪的恶意软件。 (7认同)
  • 这应该被视为真正的答案。“官方”答案只是让提问者绕道而行。 (3认同)
  • 如果我屏蔽 sanpd,我已经安装的 snap 应用程序会崩溃还是在下次启动时无法工作?我想禁用自动更新。但还是想用snap应用 (2认同)

小智 39

Snap 软件包是访问比以前更多软件的好方法。您现在可以获得 Skype、LibreOffice 最新版、GIMP 最新版、所有 JetBrains IDE 甚至游戏的快照包。

所有这些都是使用 Ubuntu 软件应用程序安装的,不需要使用命令行。

对您来说重要的问题是,您真的需要禁用 snap 包吗?

暂时禁用 snap 包(直到重新启动或运行时start):

sudo systemctl stop snapd.service
Run Code Online (Sandbox Code Playgroud)

要永久禁用 snap 包:

sudo systemctl stop snapd.service
sudo systemctl disable snapd.service
Run Code Online (Sandbox Code Playgroud)

要重新启用 snap 包:

sudo systemctl reenable snapd.service
sudo systemctl start snapd.service
Run Code Online (Sandbox Code Playgroud)

  • 禁用不起作用,重新启动后它会自动重新启用。您必须使用 `sudo systemctl mask snapd.service` 屏蔽该服务以使其重新启动安全(如果您不想重新启动,请手动停止它) (7认同)
  • 答案不起作用:仅禁用 snapd 是不够的。尽管如此,我的系统还是在重新启动后启动了 snapd。 (3认同)
  • 当我禁用 snapd 时,Firefox 和 Chromium 不再工作:```错误:无法与服务器通信:发布 http://localhost/v2/snapctl:拨打 unix /run/snapd-snap.socket:连接:没有这样的文件或目录错误:未连接到 gnome-3-38-2004 内容接口。```。有没有办法禁用 snapd 并且仍然有互联网浏览器? (2认同)

rub*_*o77 12

您可以使用以下命令停止和屏蔽 snapd 服务:

systemctl mask snapd.service
systemctl stop snapd.service
Run Code Online (Sandbox Code Playgroud)

然后使用此脚本,这将使您可以轻松更新快照:

#!/bin/bash

# this script unmasks and starts the snapd service, do a refresh and disables it again

set -x
systemctl unmask snapd.service
systemctl start snapd.service
systemctl status --no-pager snapd.service
snap refresh
systemctl mask snapd.service
systemctl stop snapd.service
sleep 2
kill -9 $(pgrep snapd)
Run Code Online (Sandbox Code Playgroud)

把它放进去/usr/local/sbin/snap-update并赋予它可执行权限chmod +x

然后你可以运行:

sudo snap-update
Run Code Online (Sandbox Code Playgroud)

我在这里为它创建了一个要点,在安装新快照后,它也会删除旧快照。

注:如果您运行apt的自动更新,并有一个更新由管理包snapd,它会挂起,如果snapd被屏蔽,所以记得要UNMASK snapd在这种情况下,开始apt upgrade再次


小智 5

我尝试确定pidfor /usr/lib/snapd/snapd, using sudo nethogs wlp4s0.
然后使用 杀死这个进程sudo kill -9 pid_of_the process
然后使用禁用此过程sudo systemctl disable snapd.service
从此,我过上了平静的生活。我的数据使用量也仍然受到控制。

  • 为“nethogs”+1,好工具!但是要停止 snapd,您可以简单地使用 `pgrep`:一行:`sudo Kill -9 $(pgrep snapd); sudo systemctl stop snapd.service; sudo systemctl mask snapd.service` (3认同)