解決策 1:
systemd-analyze
はあなたの友達です。例:systemd-analyze critical-chain
デーモンのブロッキング ツリーを出力します。たとえば、Mine:
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 は、基本的に起動全体を保持します。
より詳細なビューが必要な場合は、実行チェーン全体を svg ファイルにレンダリングできます。systemd-analyze plot > something.svg
チェーン全体 (120 以上のモジュール) をプログレス バーとして高解像度 svg ファイルに出力し、ブロックされている状態や別の問題を示します。
最後に systemd-analyze dot
を取得しました 階層全体を出力するドットファイルを出力するツール:systemd-analyze dot | dot -Tpng -o stuff.png
dot ツールを使用すると、ps および svg ファイルとしても出力できます。
上記のツールはすべて、少なくとも archlinux の systemd にデフォルトで付属する systemd-analyze ツールに組み込まれています。それを扱っているサードパーティのプロジェクトもいくつかあると思います.
解決策 2:
質問を正しく理解しているかどうかわかりませんが、次のコマンドで利用できるツリーの視覚化があります:
sudo systemctl status
また:
sudo systemctl list-dependencies
これが役立つことを願っています:)
また、systemctl symlinks フォルダーのツリーを構築すると、他の目的にも役立つ場合があります。
tree /etc/systemd/system
システムの起動を遅くしている古い/バグのあるユニットを見つけ出し、後で systemctl disable
を使用してそれらを無効にすることは、実際には非常に役立ちました コマンド。
編集
とはいえ、この基本機能はグラフィカルツールではなくコマンドラインツールを介して提供する必要があるというOPに本当に同意します... X を起動できない場合はどうなりますか?では、svg ファイルをどのように処理しますか?
実は、方法があります。 scp
が使えない場合 (ssh ツール) 別のコンピュータでファイルを取得するには fbi
実際に役立つかもしれません:)
sudo systemd-analyze plot > /home/user/startup.svg
fbi /home/user/startup.svg
私のTTYで働いていました。矢印で画像内を移動するだけです。 fbi -h
をリストするには、ズーム オプションがあります。 .
繰り返しますが、これが役立つことを願っています。 Archlinux および Ubuntu リポジトリで利用できます。
編集 2:
fbi
ssh では動作しません。この ssh -Y [email protected]
のように X 転送を行うことができます 、ただし、リモート サーバーで X サーバーを実行する必要があります。
ここでの最善の策は、 sshfs
を使用することです .たとえば、nautilus を使用すると、ユーザー空間で大きく機能します。少し構成が必要です。以下を参照してください:
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
解決策 3:
あなたの質問にはまだ完全には答えていないかもしれませんが、 --fuzz
で試してみてください オプション
systemd-analyze critical-chain --fuzz 1h
単位も指定できることに注意してください 彼らのクリティカルチェーンを見るために 、したがって、multi-user.target に限定されません
systemd-analyze critical-chain network.target local-fs.target
これが役に立てば幸いです