fwupd-refresh.service 失败

see*_*arp 18 server bios fwupd 20.04

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

终端

您能解释一下这个问题吗?您能帮助解决它吗?

She*_*huk 19

在某些情况下,可以安全地忽略此错误。fwupd-refresh.service仅执行/usr/bin/fwupdmgr refresh命令并将退出状态2视为成功(请参阅 的最后 2 行fwupd-refresh.service)。但fwupdmgr也可以成功退出并显示 status 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
    
    Run Code Online (Sandbox Code Playgroud)
  • sudo /usr/bin/fwupdmgr refresh:

    ...
    Successfully downloaded new metadata: 0 local devices supported
    
    Run Code Online (Sandbox Code Playgroud)
  • 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".
    
    Run Code Online (Sandbox Code Playgroud)

  • 对于遇到超时错误的任何人:“apt update fwupd.service”,然后“/usr/bin/fwupdmgr刷新”解决了这个问题。 (4认同)

小智 14

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

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

[Service]
DynamicUser=no
Run Code Online (Sandbox Code Playgroud)

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