Jika suatu layanan enabled
, maka ada symlink di suatu tempat di
/etc/systemd/system
ke file unit, paling sering di suatu tempat di
/lib/systemd/system
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
dan disable
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 Anda unmask
menggunakan layanan, symlink dihapus.
Namun, saya perhatikan bahwa perintah ini tidak selalu dihormati.
Ketika saya mencoba untuk menutupi sebagian besar layanan, itu gagal:
$ sudo systemctl mask bluetooth.service
Failed to execute operation: Invalid argument
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
:
$ file $(locate fuse.service)
/lib/systemd/system/fuse.service: symbolic link to /dev/null
$ sudo systemctl unmask fuse.service
$ systemctl status fuse
● fuse.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
Saya bukan satu-satunya yang memiliki masalah ini
Untuk benar-benar membuka kedok layanan masked x11-common, saya harus menghapus symlink ke /dev/null
dan sudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload
. Sekarang ketika saya menanyakannya dengan systemctl 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.