Ketika saya menjalankan perintah sudo systemctl list-unit-files
(saya pikir sudo adalah opsional), saya mendapatkan output yang menunjukkan semua layanan dan keadaan mereka.
Ini cuplikan dari mesin saya:
UNIT FILE STATE
...
debian-fixup.service static
debug-shell.service disabled
display-manager.service enabled
dns-clean.service enabled
dsmcad.service enabled
emergency.service static
failsafe-x.service static
friendly-recovery.service masked
fuse.service masked
gdm.service masked
getty-static.service static
[email protected] enabled
gpsd.service indirect
[email protected] static
gpu-manager.service enabled
halt-local.service static
halt.service masked
hostname.service masked
...
Saya bertanya-tanya mengapa beberapa layanan berada dalam keadaan "tertutup". Saya pikir ini berarti, "ini lebih baik daripada 'menonaktifkan', karena layanan tidak dapat dimulai, baik dengan tangan atau dengan sistemd".
Bagaimana saya bisa mendapatkan informasi lebih lanjut tentang keadaan unit layanan?
Siapa yang telah menempatkan unit ke masing-masing negara?
Saya mencoba, misalnya,
sudo systemctl help dsmcad
- yang hanya memunculkan documentation = ...
baris dari file unit./etc/systemd/system/dsmcad.service
Catatan: Di sini saya tahu persis apa layanan dsmcad dan apa fungsinya, saya telah menginstalnya sendiri. Saya lebih tertarik pada solusi umum.
mask
danunmask
perintah yang dapat digunakan dengansystemctl
. Jadi lakukan sajasystemctl unmask name_of_service.service
.systemctl unmask name_of_service.service
sepenuhnya menghapus file definisi layanan saya/etc/systemd/system/
, jadi sekarang saya perlu menambahkannya kembali. Jika itu menjadi topeng lagi, saya akan terjebak dalam lingkaran oO/etc/systemd/system
hanya tautan simbolis layanan. Anda harus menambahkan*.service
file/lib/systemd/system
dari mana ia akan ditautkan/etc/systemd/system
jika Andaenable
layanan.mask
membuat tautan ke/dev/null
danunmask
menghapus tautan ini dari/etc/systemd/system
dan jelas tidak ada bedanya jika seseorang meletakkan file di sana.hostname.service
disembunyikan sebagai berlebihan karenasystemd
menyetel nama host (dari / etc / hostname) sejak awal saat startup.Pengaturan ini disediakan oleh paket systemd Debian.
Demikian pula, Debian sekarang dapat berjalan tanpa skrip shell ke
halt
sistem, itu ditangani oleh systemd-shutdown (kode sumber di sini ) sebagai gantinya.Jika suatu layanan telah di-masking secara manual, maka mask akan diinstal
/etc/systemd/system
sebagai gantinya.Layanan juga tertutup saat dihapus di Debian / Ubuntu . Saya tidak tahu kenapa.
sumber
Karena Anda meminta informasi tentang keadaan bertopeng, penting untuk menyebutkan bahwa itu dapat diamati dalam layanan yang setelah dimulai, seandainya definisi dimodifikasi, memuat ulang (systemctl daemon-reload) dan keadaan baru TIDAK ok . Salah satu contoh mudah untuk memahaminya adalah skenario berikut:
Oleh karena itu, negara bertopeng dapat berasal dari definisi layanan yang tidak tepat. Oleh karena itu, pengguna dapat menyebabkan status kedok dengan mengedit layanan dengan tidak benar.
Pengamatan: Saya tidak yakin apakah itu terjadi dengan sengaja atau itu adalah bug sederhana (opsi default), tetapi mungkin ada beberapa info menarik untuk dibagikan
sumber