GNU/Linux >> Znalost Linux >  >> Linux

Existuje způsob, jak zobrazit strom provádění systemd?

Řešení 1:

systemd-analyze je váš přítel. Například systemd-analyze critical-chain výstupy blokující strom démonů. Například můj:

graphical.target @20.211s
└─multi-user.target @20.211s
  └─nginx.service @19.348s +862ms
    └─network.target @19.347s
      └─NetworkManager.service @10.315s +9.031s
        └─basic.target @10.312s
          └─timers.target @10.311s
            └─systemd-tmpfiles-clean.timer @10.311s
              └─sysinit.target @10.295s
                └─systemd-update-utmp.service @10.167s +127ms
                  └─systemd-tmpfiles-setup.service @10.124s +41ms
                    └─local-fs.target @10.097s
                      └─home-entd-Downloads.mount @10.093s +2ms
                        └─home.mount @9.326s +672ms
                          └─[email protected] @8.472s +696ms
                            └─dev-sda6.device @8.471s

NetworkManager v příkladu v podstatě drží celé spouštění.

Pokud chcete mít podrobnější pohled, můžete vykreslit celý řetězec provádění v souboru svg.systemd-analyze plot > something.svg vypíše celý řetězec (120+ modulů) jako ukazatele průběhu do souboru svg s vysokým rozlišením, který ukazuje stavy, které jsou blokovány a další problémy.

Nakonec máte systemd-analyze dot nástroj, který vygeneruje soubor s tečkami, který vypíše celou hierarchii:systemd-analyze dot | dot -Tpng -o stuff.png pomocí tečkového nástroje jej můžete také vytisknout jako soubory ps a svg.

Všechny výše uvedené nástroje jsou zabudovány v nástroji systemd-analyze, který je standardně dodáván alespoň se systemd v archlinuxu. Myslím, že se tím také zabývají projekty třetích stran.

Řešení 2:

Nejsem si jistý, zda správně rozumím otázce, ale jsou k dispozici stromové vizualizace s následujícími příkazy:

sudo systemctl status

A také :

sudo systemctl list-dependencies 

Doufám, že to pomůže :)

Také může být užitečné pro jiné účely vytvořit strom složek se symbolickými odkazy systemctl:

tree /etc/systemd/system

Bylo skutečně užitečné zjistit staré / zabugované jednotky, které zpomalovaly spouštění mého systému, a následně je deaktivovat pomocí systemctl disable příkaz.

UPRAVIT

To znamená, že opravdu souhlasím s OP, že tato základní funkce by měla být dána pomocí nástrojů příkazového řádku, a nikoli pomocí grafického nástroje... Co když nemůžete spustit X? Jak tedy nakládáte se svým souborem svg?

Ve skutečnosti existuje způsob. Pokud nemůžete použít scp (nástroj ssh) k načtení souboru na jiném počítači, fbi možná vám pomůže :)

sudo systemd-analyze plot > /home/user/startup.svg
fbi /home/user/startup.svg

Pracoval v mých TTY. Stačí se pohybovat uvnitř obrázku pomocí šipek. Existují možnosti přiblížení, pro seznam až fbi -h .

Znovu doufám, že to pomůže. Je k dispozici v repozitářích Archlinux a Ubuntu.

EDITACE 2:

fbi nefunguje přes ssh. Přesměrování X můžete provést takto ssh -Y [email protected] , ale potřebujete X server běžící na vašem vzdáleném serveru.

Zde je nejlepší použít sshfs . Funguje SKVĚLE v uživatelském prostoru, například s nautilem. Je potřeba provést malou konfiguraci, viz:

sudo vim /etc/fuse.conf #type a, uncomment the user_allow_other line and ESC :wq
sudo mkdir /mnt/yourmountingdir
sudo chown user:user /mnt/yourmountingdir
sshfs [email protected]:/home/user /mnt/yourmountingdir/ -o allow_other #Asks for host trusting and password
sudo fusermount -u /mnt/yourmountingdir/ #To disconnect and unmount

Řešení 3:

Možná stále ještě plně neodpovídáte na vaši otázku, ale zkuste to pomocí --fuzz možnost

systemd-analyze critical-chain --fuzz 1h

Všimněte si, že můžete také zadat jednotkus zobrazit jejich kritický řetězec , takže nejste omezeni na multi-user.target

systemd-analyze critical-chain network.target local-fs.target

Doufám, že to pomůže


Linux
  1. Vložit soubor Systemd Unit?

  2. Existuje způsob, jak přimět mv, aby vytvořil adresář, do kterého se má přesunout, pokud neexistuje?

  3. Existuje způsob, jak „uniq“ podle sloupce?

  1. Existuje způsob, jak zkontrolovat aktuální rpath v Linuxu?

  2. Existuje způsob, jak restartovat špatné bloky?

  3. Linux – Existuje nějaký způsob, jak zjistit rychlost vaší paměti pomocí softwaru?

  1. Existuje způsob, jak změnit ID svazku souborů .iso z příkazového řádku?

  2. Jaký je nejlepší způsob, jak se naučit SELinux?

  3. Existuje rychlý způsob, jak získat úplně poslední soubor ve velkém TAR?