Ошибка fwupd-refresh.service

У меня есть VPS, и после проверки systemctl, я заметил, что мой fwupd-refresh.service не работает.

Терминал

Можете ли вы объяснить проблему и не могли бы вы помочь ее исправить?

5 ответов

В некоторых случаях эту ошибку можно смело игнорировать. просто выполняет /usr/bin/fwupdmgr refreshкоманда и обрабатывает статус выхода 2как успех (см. последние 2 строки fwupd-refresh.service). Но fwupdmgrтакже может успешно выйти со статусом, который будет ошибочно интерпретирован 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".
    

В моем случае (Ubuntu Server 20.04 с последними обновлениями) DynamicUser=noобеспечивает быстрое и грязное решение.

Сначала запустите «systemctl edit fwupd-refresh» и введите:

      [Service]
DynamicUser=no

Затем запустите «systemctl restart fwupd-refresh» и наслаждайтесь.

fwupd-refresh.service Загружено: замаскировано

Замаскированная служба отключена и не может быть активирована другим устройством (таймерами, целями, службами...), которое в ней нуждается, или вручную. Это более сильная версия отключения службы.

fwupd-refresh.timer: ...сбой...модуль fwupd-refresh замаскирован.

Чтобы изменить это:

      sudo systemctl unmask fwupd-refresh

Тогда это:

      sudo systemctl daemon-reload && 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=

Я решил свою проблему с этим https://github.com/fwupd/fwupd/wiki/PluginFlag:legacy-bios

Просто добавьте «биос» в конце этой строкиDisabledPlugins=test;invalid;biosв

      /etc/fwupd/daemon.conf 

Проблема возникает из-за того, что модуль «fwupd-refresh» возвращает «2» в случае успеха и должен возвращать «1» в случае успеха, чего и ожидает Ubuntu.

Чтобы исправить, отредактируйте файл:/lib/systemd/system/fwupd-refresh.service

И измените эту строку:

      SuccessExitStatus=2

Так что читается:

      SuccessExitStatus=1

После редактирования файла запустите эту команду, чтобы перезапустить службу:

      sudo systemctl daemon-reload && sudo systemctl start fwupd-refresh.service

Сделанный.

Чтобы убедиться, что это сработало, выполните эту команду:

      sudo systemctl status fwupd-refresh.service

Приведенная выше команда показывает этот вывод для меня, когда я запускаю ее:

      /lib/systemd/system: sudo systemctl status fwupd-refresh.service
fwupd-refresh.service - Refresh fwupd metadata and update motd
     Loaded: loaded (/lib/systemd/system/fwupd-refresh.service; static; vendor preset: enabled)
    Drop-In: /etc/systemd/system/fwupd-refresh.service.d
             └─override.conf
     Active: inactive (dead) since Sat 2023-01-28 04:35:26 PST; 8min ago
TriggeredBy: fwupd-refresh.timer
       Docs: man:fwupdmgr(1)
    Process: 129096 ExecStart=/usr/bin/fwupdmgr refresh (code=exited, status=1/FAILURE)
   Main PID: 129096 (code=exited, status=1/FAILURE)

Jan 28 04:35:26 bithi systemd[1]: Starting Refresh fwupd metadata and update motd...
Jan 28 04:35:26 bithi systemd[1]: fwupd-refresh.service: Succeeded.
Jan 28 04:35:26 bithi systemd[1]: Finished Refresh fwupd metadata and update motd.

Несмотря на то, что вы по-прежнему будете видеть строку, выделенную красным цветом «(code=exited, status=1/FAILURE)», вы больше не должны получать всплывающее окно с ошибкой в ​​приложении Ubuntu Software center, жалующееся на невозможность обновления.

Это также решило мою проблему, заключавшуюся в том, что Ubuntu неоднократно пытался обновить «базу Ubuntu» снова и снова, но никогда не завершал обновление должным образом, и благодаря этому я, наконец, смог обновить базу Ubuntu.

Другие вопросы по тегам