AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1530631
Accepted
xealits
xealits
Asked: 2024-10-20 22:49:13 +0800 CST2024-10-20 22:49:13 +0800 CST 2024-10-20 22:49:13 +0800 CST

NetworkManager.service não inicia em uma inicialização rápida, journalctl mostra muitos ciclos de ordenação do systemd durante a inicialização

  • 772

Acabei de instalar o Ubuntu 24.04 em uma unidade Intel Optane p4801x. Estou tentando ver o quão rápido ele inicializa a partir deste disco. De fato, ele inicializa muito rápido. Mas a NetworkManagerunidade geralmente não inicia. Ela está habilitada, mas morta, e não há nada no journalctl -b 0 -u NetworkManager.service. Ou seja, a unidade nunca foi executada durante a inicialização. Quando eu mesmo a inicio após a inicialização, ela inicializa bem:

systemctl start NetworkManager

Os logs mostram que networkd-dispatcherfoi desabilitado para quebrar o ciclo de ordenação:

$ journalctl -b 0 | grep network
Oct 20 14:21:15 evergreens kernel: drop_monitor: Initializing network drop monitor service
Oct 20 14:21:15 evergreens systemd[1]: multi-user.target: Found ordering cycle on networkd-dispatcher.service/start
Oct 20 14:21:15 evergreens systemd[1]: multi-user.target: Job networkd-dispatcher.service/start deleted to break ordering cycle starting with multi-user.target/start
Oct 20 14:21:15 evergreens systemd[1]: Reached target network.target - Network.
Oct 20 14:21:15 evergreens systemd[1]: Reached target network-online.target - Network is Online.
...

Suspeito que isso fez com NetworkManagerque nunca fosse executado também.

O Systemd não mostra nenhum problema em nenhum dos dois:

$ sudo systemd-analyze verify networkd-dispatcher.service
$ sudo systemd-analyze verify NetworkManager.service
$

Mas o log na verdade mostra muito mais ciclos de ordenação, e isso aparece em verify multi-user.target:

$ journalctl -b 0 | grep "break.*cycle"
...
$ sudo systemd-analyze verify multi-user.target
...

Por exemplo, a rede:

$ sudo systemd-analyze verify multi-user.target 2>&1 | grep -i netwo
multi-user.target: Found dependency on network.target/start
ubuntu-advantage.service: Found ordering cycle on network.target/start
ubuntu-advantage.service: Job network.target/start deleted to break ordering cycle starting with ubuntu-advantage.service/start
multi-user.target: Found ordering cycle on networkd-dispatcher.service/start
multi-user.target: Job networkd-dispatcher.service/start deleted to break ordering cycle starting with multi-user.target/start
multi-user.target: Found ordering cycle on NetworkManager.service/start
multi-user.target: Job NetworkManager.service/start deleted to break ordering cycle starting with multi-user.target/start

Mas, parece que sudo systemd-analyze verify multi-user.target imprime coisas diferentes em quase toda vez que eu o executo ? Isso é possível? Às vezes, ele imprime muito mais, às vezes, apenas 1 unidade.

Tentei traçar as dependências multi-user.targetseguindo a resposta no Unix Stackexchange :

$ sudo systemd-analyze verify multi-user.target 2>&1 |\
  perl -lne 'print $1 if m{Found.*?on\s+([^/]+)}' |\
  xargs --no-run-if-empty systemd-analyze dot | dot -Tsvg > cycle.svg

Não consegui ver um ciclo ali. Além disso, o gráfico é grande e difícil de ler. Tentei "dar zoom" em algumas unidades como, mas também não vejo um ciclo ali:

$ echo multi-user.target networkd-dispatcher.service basic.target |\
  xargs --no-run-if-empty systemd-analyze dot |\
  dot -Tsvg > cycle.svg

Como systemd-analyze verifyele imprime coisas diferentes quase toda vez que é executado, esses gráficos provavelmente não são confiáveis.

Olhando para unidades individuais, não encontro problema. As NetworkManagerdependências parecem boas:

$ cat /usr/lib/systemd/system/NetworkManager.service
[Unit]
Description=Network Manager
Documentation=man:NetworkManager(8)
Wants=network.target
After=network-pre.target dbus.service
Before=network.target
BindsTo=dbus.service
...

[Install]
WantedBy=multi-user.target
Also=NetworkManager-dispatcher.service

Eu tive um problema parecido ao inicializar de uma unidade NVMe comum da Corsair. E nunca tive quando a inicialização do NVMe da Corsair era anormalmente lenta por causa de uma unidade específica. (Montando um disco HDD /etc/fstab- ele não está fstabmais lá, então não deixa a inicialização lenta.)

Ie Eu acho que esse problema acontece somente quando a sequência de boot é rápida. Embora eu não entenda por que isso seria o caso. Por que um problema no gráfico de dependência apareceria somente em boot rápido?

Alguém poderia sugerir como rastrear os ciclos de pedidos?

O que está acontecendo com systemd-analyze verify multi-user.targeta impressão de coisas diferentes a cada vez? Esse é um comportamento conhecido real? Como ele atravessa o gráfico de dependência, é de alguma forma aleatório? Isso pode estar relacionado à causa que faz o systemd excluir unidades durante a inicialização, mas as mesmas unidades rodam bem depois?

24.04
  • 1 1 respostas
  • 19 Views

1 respostas

  • Voted
  1. Best Answer
    xealits
    2024-10-23T04:10:40+08:002024-10-23T04:10:40+08:00

    Pesquisei systemd-analyze verifymais. Ele realmente imprimia um número aleatório de ciclos de ordenação toda vez que eu o executava! (A pergunta correspondente no Unix Exchange .) E descobriu-se que uma mountunidade personalizada estava causando isso de alguma forma. Acabei de notar que essa mountunidade aparece em cada bloco de "Found ordering cycle", assim:

    $ systemd-analyze verify multi-user.target
    ...
    sysinit.target: Found ordering cycle on local-fs.target/start
    sysinit.target: Found dependency on <<<media-user-b.mount>>>/start
    sysinit.target: Found dependency on multi-user.target/start
    sysinit.target: Found dependency on thermald.service/start
    sysinit.target: Found dependency on sysinit.target/start
    sysinit.target: Job local-fs.target/start deleted to break ordering cycle starting with sysinit.target/start
    

    Quando a mountunidade é desabilitada, systemd-analyze verifynão encontra ciclos de ordenação e a inicialização é executada corretamente.

    Portanto, a falha de inicialização deve ser causada por esses ciclos de ordenação que ocorrem aleatoriamente, o que faz com que systemdalgumas unidades sejam excluídas aleatoriamente, incluindo NetworkManager.

    Não vejo por que a unidade causa ciclos. Especialmente por que é aleatório. É uma montagem simples que conecta um monte de unidades de HDD de backup depois do multi-user.targettipo assim:

    [Unit]
    Description=Mount BTRFS backup b filesystem
    After=multi-user.target
    
    [Mount]
    What=/dev/disk/by-label/backups_b
    Where=/media/<user>/b
    Type=btrfs
    Options=defaults
    
    LazyUnmount=yes
    
    [Install]
    WantedBy=multi-user.target
    

    Então, seguindo o conselho do Reddit, desabilitei esta mountunidade e adicionei e habilitei uma automountunidade que aciona a montagem:

    [Unit]
    Description=Automount backup disks
    
    [Automount]
    Where=/media/<user>/b
    
    [Install]
    WantedBy=multi-user.target
    
    • 0

relate perguntas

  • Problemas ao instalar 24.04

  • Nenhum clique pode ser feito em todo o canto superior direito de um aplicativo maximizado no Ubuntu 24.04

  • Tenho uma dúvida sobre como baixar a versão do Ubuntu entre LTS e básica

  • 24.04 Textos LTS não aparecem até passar o mouse

  • A boutique de software não pode ser iniciada no Ubuntu24.04 LTS

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve