自从升级到 Ubuntu 17.10 以来,我一直无法连接到 snap 守护进程。例如,如果我从命令行使用它,并输入:“sudo snap find hello”,它会失败,告诉我无法连接到 localhost 上的服务。
尝试启动该服务后,我收到以下信息:
-- Unit snapd.service has begun starting up.
Jan 20 17:58:00 hostname snapd[7848]: AppArmor status: apparmor is enabled but some features are missing: dbus, network
Jan 20 17:58:00 hostname snapd[7848]: AppArmor status: apparmor is enabled but some features are missing: dbus, network
Jan 20 17:58:00 hostname snapd[7848]: error: invalid character 'e' looking for beginning of value
Jan 20 17:58:00 hostname systemd[1]: snapd.service: Main process exited, code=exited, status=1/FAILURE
Jan 20 17:58:00 hostname systemd[1]: Failed to start Snappy daemon.
-- Subject: Unit snapd.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit snapd.service has failed.
--
-- The result is failed.
Jan 20 17:58:00 hostname systemd[1]: snapd.service: Unit entered failed state.
Jan 20 17:58:00 hostname systemd[1]: snapd.service: Failed with result 'exit-code'.
Jan 20 17:58:00 hostname systemd[1]: snapd.service: Service hold-off time over, scheduling restart.
我尝试重新安装 snappy,但是没有效果。
我最近不得不使用 4.15 rc8 内核(用于 WiFi 驱动程序),但我也尝试使用 4.13-25 内核,认为它可能缺少安全功能,但这也没有帮助。
我很难理解“无效字符‘e’寻找值的开头”的含义,因为我认为这将引导我找到解决方案。
顺便说一句,snappy 应用程序正在运行,因为我使用了 Rocket.chat snap,它确实一直在运行,但我不确定它是否正在更新。
答案1
感谢 snapcraft.io 网站上的一篇文章,我终于找到了问题的根源。
我的/var/lib/snapd/state.json
已损坏,因此我备份了文件并重新启动snapd
:
systemctl start snapd.service