Saya ingin meningkatkan waktu boot Ubuntu GNOME 16.04 saya dengan menonaktifkan layanan plymouth ketika boot. Saya telah menemukan dua jawaban tentang bagaimana melakukannya di berbagai situs web yaitu:
# systemctl disable plymouth-quit-wait.service
# systemctl mask plymouth-quit-wait.service
Saya tidak dapat menjalankan salah satu dari yang di atas kecuali saya tahu apa yang mereka lakukan.
Jawaban:
Jika suatu layanan
enabled
, maka ada symlink di suatu tempat dike file unit, paling sering di suatu tempat di
Bermanfaat, ketika Anda
enable
suatu layanan, jalur lengkap dari tautan dan target yang dibuat akan dicetak ke stdout.Menonaktifkan layanan menghapus symlink, sehingga file unit itu sendiri tidak terpengaruh, tetapi layanan tidak dimuat pada boot berikutnya, ketika systemd membaca
/etc/systemd/system
.Namun, layanan yang dinonaktifkan dapat dimuat, dan akan dimulai jika layanan yang bergantung padanya dimulai ;
enable
dandisable
hanya mengonfigurasi perilaku mulai otomatis untuk unit, dan statusnya mudah diganti.Layanan bertopeng adalah layanan yang file unitnya adalah symlink
/dev/null
. Ini membuatnya "mustahil" untuk memuat layanan, bahkan jika diperlukan oleh layanan lain yang diaktifkan.Saat Anda
mask
menggunakan layanan, symlink dibuat dari/etc/systemd/system
ke/dev/null
, membiarkan file unit asli di tempat lain tidak tersentuh. Saat Andaunmask
menggunakan layanan, symlink dihapus.Namun, saya perhatikan bahwa perintah ini tidak selalu dihormati.
Ketika saya mencoba untuk menutupi sebagian besar layanan, itu gagal:
Tentu saja, saya menghentikan layanan terlebih dahulu. @Anwar menyarankan masking hanya mungkin untuk layanan non-kritis.
Membuka kedok layanan bertopeng, kecuali saya menutup sendiri, juga gagal (diam-diam). Saya percaya ini karena tidak ada file unit untuk layanan di mana pun, kecuali dalam bentuk symlink
/dev/null
, kali ini di/lib/systemd/system
:Saya bukan satu-satunya yang memiliki masalah ini
Untuk benar-benar membuka kedok layanan masked x11-common, saya harus menghapus symlink ke
/dev/null
dansudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload
. Sekarang ketika saya menanyakannya dengansystemctl status x11-common
saya melihat layanan memiliki lingkaran hijau yang bagus dan dimuat dan aktif (keluar) meskipun tidak memiliki file unit.Untuk referensi lebih lanjut, artikel ini tentang Cara Menggunakan Systemctl mungkin bermanfaat.
sumber
systemctl status x11-common ● x11-common.service Loaded: masked (/dev/null; bad) Active: inactive (dead)
. Apakah itu buruk? Tapi saya menggunakan Debian, bukan Ubuntu. Lagi pula, penjelasan yang bagus. Terima kasih.Sederhana saja.
systemctl start
,systemctl stop
: memulai (menghentikan) unit yang dimaksud segera ;systemctl enable
,systemctl disable
: menandai (hapus tanda) unit untuk mulai otomatis saat boot (dengan cara khusus unit, dijelaskan pada[Install]
bagiannya);systemctl mask
,systemctl unmask
: melarang (memungkinkan) semua dan segala upaya untuk memulai unit yang dipermasalahkan (baik secara manual atau sebagai ketergantungan dari unit lain, termasuk dependensi dari target boot default). Perhatikan bahwa menandai untuk autostart di systemd diimplementasikan dengan menambahkan ketergantungan buatan dari target boot default ke unit yang dimaksud, jadi "mask" juga melarang autostarting.Ref .: systemctl (1) .
Lebih lanjut: Lennart Poettering (2011-03-02). "Tiga Tingkat Mati" . systemd untuk Administrator . 0pointer.de.
sumber
Pendeknya,
disable
membuat unit dinonaktifkan saat boot. Tetapi unit itu dapat dimulai kapan saja setelah boot.mask
menonaktifkan unit sepenuhnya. Itu tidak dapat dimulai tanpa membuka kedok. Itu secara otomatis berarti akan gagal saat boot.sumber
mask
danunmask
bekerja untuk Anda? (Saya benar-benar mengerti jika Anda tidak ingin menguji!)[email protected]
layanan.