Bagaimana saya bisa memprediksi urutan shutdown systemd?

9

Apakah ada cara untuk systemdmemberi tahu saya urutan kasar di mana ia akan mematikan layanan ketika saya menutup seluruh sistem dengan bersih? Karena systemdakan mematikan semuanya secara paralel, saya menghargai tidak ada cara untuk mengetahui urutan pastinya, tetapi masih akan sangat membantu untuk mengetahui kendala apa yang systemdakan terjadi pada urutan penutupan, lebih disukai dalam beberapa jenis visualisasi yang mudah dimengerti.

Motivasinya adalah untuk pengembangan dan debugging file layanan, akan jauh lebih mudah untuk mendapatkan daftar prediksi ini di muka, daripada harus melakukan shutdown nyata dan kemudian boot lagi dan periksa log setiap kali saya ingin menentukan apa dampak perubahan pada file unit layanan atau beberapa aspek lain dari konfigurasi systemd akan berdampak pada perintah shutdown.

Saya berharap sesuatu seperti itu

systemctl list-dependencies --before shutdown.service

akan melakukan pekerjaan itu, tetapi hanya memancarkan:

shutdown.service
Adam Spires
sumber

Jawaban:

2

Berikut ini mungkin membantu Anda:

systemctl list-dependencies --before shutdown.target

Salam,

Mohamed Salhi
sumber
3
Yah, terima kasih sudah menunjukkan kesalahan bodohku bahwa itu shutdown.targettidak benar shutdown.service. Namun ini masih belum memberi saya daftar yang saya minta, tetapi malah memberi saya daftar yang sangat pendek, atau bahkan yang kosong pada beberapa sistem.
Adam Spires
Sayangnya, Systemd tidak jelas. Untuk gaya sysvinit oldschool, orang mungkin dapat menambahkan logging ke file startup dan mendaftarkan proses yang dimulai dalam file dengan cap waktu - setidaknya itulah yang pertama kali terlintas dalam pikiran saya.
shevy
1
@AdamSpiers @Mohamed Salhi pada dasarnya, "sebelum" berarti "dimulai sebelum". Ini berarti perintah yang Anda inginkan adalah systemctl list-dependencies --after shutdown.target... setidaknya itu akan menemukan semua perintah pertama tidak. Ini juga membingungkan karena shutdown.targetyang mulai , tapi semua unit lainnya berhenti , dan dalam hal ini tidak peduli apakah Anda memiliki "sebelum" atau "setelah" memesan; penghentian dilakukan sebelum memulai dalam kedua kasus.
sourcejedi
1

Shutdown order biasanya kebalikan dari order startup.

Yang mengatakan, semua daemon dikirim sinyal shutdown, dan akan mengambil berbagai waktu untuk benar-benar dimatikan dan keluar.

Meninggalkan ke systemd sederhana, saya tidak berpikir layak untuk memprediksi layanan apa yang akan keluar dalam urutan apa. Selanjutnya, dependensi akan mengontrol beberapa urutan.

Jonesome Reinstate Monica
sumber
1
Benar - saya sadar akan hal itu, karena paralelisasi. Namun saya tidak perlu urutan yang tepat - hanya pemesanan mana yang ditegakkan dan hal-hal mana yang berpotensi berjalan secara paralel. Saya akan memperbarui pertanyaan saya untuk mengklarifikasi ini. Juga, dapatkah Anda memenuhi syarat "biasanya"? Kapan itu bukan kebalikannya?
Adam Spires