fwupd-refresh.service 失败

fwupd-refresh.service 失败

我有 VPS,检查后systemctl发现我的fwupd-refresh.service失败了。

终端

你能解释一下这个问题吗?你能帮忙解决它吗?

答案1

在某些情况下,可以安全地忽略此错误。fwupd-refresh.service仅执行/usr/bin/fwupdmgr refresh命令并将退出状态2视为成功(参见的最后两行fwupd-refresh.service)。但fwupdmgr也可以成功退出并显示状态0,但 systemd 会将其错误地解释为错误。

  • systemctl cat fwupd-refresh

    # /lib/systemd/system/fwupd-refresh.service
    [Unit]
    Description=Refresh fwupd metadata and update motd
    Documentation=man:fwupdmgr(1)
    After=network.target
    
    [Service]
    Type=oneshot
    CacheDirectory=fwupdmgr
    StandardError=null
    DynamicUser=yes
    RestrictAddressFamilies=AF_NETLINK AF_UNIX AF_INET AF_INET6
    SystemCallFilter=~@mount
    ProtectKernelModules=yes
    ProtectControlGroups=yes
    RestrictRealtime=yes
    SuccessExitStatus=2
    ExecStart=/usr/bin/fwupdmgr refresh
    
  • sudo /usr/bin/fwupdmgr refresh

    ...
    Successfully downloaded new metadata: 0 local devices supported
    
  • echo $?0

  • man fwupdmgr

    EXIT STATUS
          Commands that successfully execute will return "0", but commands that have no actions but successfully execute will return "2".
    

答案2

就我自己的情况(Ubuntu Server 20.04 带有最新更新)而言,DynamicUser=no提供了快速而简单的解决方案。

首先,运行“systemctl edit fwupd-refresh”并输入:

[Service]
DynamicUser=no

然后,运行“systemctl restart fwupd-refresh”并享受。

答案3

fwupd-刷新服务 已加载:已蒙面

被屏蔽的服务将被禁用,无法由需要它的其他单元(计时器、目标、服务……)或手动激活。这是禁用服务的增强版本。

fwupd-刷新.计时器:...失败...单元 fwupd-refresh 被屏蔽。

要改变这一点:

sudo systemctl unmask fwupd-refresh

然后是这个:

sudo systemctl daemon-reload && sudo systemctl start fwupd-refresh.service
systemctl list-units --failed

如果 fwupd-refresh 被列为失败,则:

#DynamicUser=yes 取消/lib/systemd/system/fwupd-refresh.service 中的注释

https://www.freedesktop.org/software/systemd/man/systemd.exec.html#DynamicUser=

答案4

我已经解决了我的问题 https://github.com/fwupd/fwupd/wiki/PluginFlag:legacy-bios

DisabledPlugins=test;invalid;bios 只需在此行末尾添加“bios”即可

/etc/fwupd/daemon.conf 

相关内容