GNU/Linux >> Belajar Linux >  >> Linux

Apakah ada cara untuk melihat pohon eksekusi systemd?

Solusi 1:

systemd-analyze adalah temanmu.Misalnya systemd-analyze critical-chain menghasilkan pohon pemblokiran daemon. Milik saya misalnya:

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 dalam contoh pada dasarnya menahan seluruh bootup.

Jika Anda ingin memiliki tampilan yang lebih mendetail, Anda dapat merender seluruh rantai eksekusi dalam file svg.systemd-analyze plot > something.svg menampilkan seluruh rangkaian (120+ modul) sebagai bilah progres ke file svg beresolusi tinggi yang menampilkan status, yang diblokir, dan masalah lainnya.

Akhirnya Anda memiliki systemd-analyze dot alat yang menampilkan file dot yang menampilkan seluruh hierarki:systemd-analyze dot | dot -Tpng -o stuff.png dengan alat titik Anda dapat menampilkannya sebagai file ps dan svg juga.

Semua alat di atas adalah alat analisis systemd bawaan yang datang secara default dengan systemd di archlinux setidaknya. Saya pikir ada beberapa proyek pihak ke-3 yang menanganinya juga.

Solusi 2:

Tidak yakin saya benar-benar memahami pertanyaannya, tetapi ada visualisasi pohon yang tersedia dengan perintah berikut :

sudo systemctl status

Dan juga :

sudo systemctl list-dependencies 

Semoga ini membantu :)

Juga, mungkin berguna untuk tujuan lain untuk membuat pohon folder symlink systemctl:

tree /etc/systemd/system

Sebenarnya sangat berguna untuk mengetahui unit lama / buggy yang memperlambat startup sistem saya, untuk menonaktifkannya setelah itu menggunakan systemctl disable perintah.

EDIT

Yang mengatakan saya sangat setuju dengan OP bahwa fungsi dasar ini harus diberikan melalui alat baris perintah, dan bukan alat grafis ... Bagaimana jika Anda tidak dapat memulai X ? Bagaimana Anda menangani file svg Anda?

Sebenarnya, ada cara. Jika Anda tidak dapat menggunakan scp (alat ssh) untuk mengambil file Anda di komputer lain, fbi mungkin benar-benar membantu Anda :)

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

Bekerja di TTY saya. Navigasikan saja ke dalam gambar dengan panah. Ada opsi zoom, untuk daftar lakukan fbi -h .

Sekali lagi saya harap ini membantu. Ini tersedia di repo Archlinux dan Ubuntu.

EDIT 2 :

fbi tidak bekerja pada ssh. Anda dapat melakukan penerusan X seperti ini ssh -Y [email protected] , tetapi Anda memerlukan server X yang berjalan di server jarak jauh Anda.

Taruhan terbaik di sini adalah menggunakan sshfs . Ini berfungsi BESAR di ruang pengguna, misalnya dengan nautilus. Ada sedikit konfigurasi yang harus dilakukan, lihat:

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

Solusi 3:

Mungkin masih belum sepenuhnya menjawab pertanyaan Anda, tetapi coba dengan --fuzz opsi

systemd-analyze critical-chain --fuzz 1h

Perhatikan bahwa Anda juga dapat menentukan units untuk melihat rantai kritis mereka , jadi Anda tidak terbatas pada multi-user.target

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

Semoga ini membantu


Linux
  1. Letakkan File Unit Systemd?

  2. Apakah ada cara untuk mengubah variabel lingkungan dari proses lain di Unix?

  3. Apakah ada cara untuk membuat mv membuat direktori untuk dipindahkan jika tidak ada?

  1. Apakah ada cara untuk 'uniq' dengan kolom?

  2. Apakah ada cara untuk memeriksa rpath saat ini di Linux?

  3. Apakah ada cara untuk me-restart badblock?

  1. Linux - Apakah ada cara untuk mengidentifikasi kecepatan memori Anda melalui perangkat lunak?

  2. Apakah ada cara untuk mengubah id volume file .iso dari baris perintah?

  3. Apa cara terbaik untuk mempelajari SELinux?