Nếu một dịch vụ là enabled
, thì có một liên kết tượng trưng ở đâu đó trong
/etc/systemd/system
đến một tập tin đơn vị, thường xuyên nhất ở đâu đó trong
/lib/systemd/system
Thật hữu ích, khi bạn enable
là một dịch vụ, các đường dẫn đầy đủ của liên kết và mục tiêu đã tạo sẽ được in ra thiết bị xuất chuẩn.
Vô hiệu hóa dịch vụ sẽ xóa liên kết tượng trưng, do đó, tệp đơn vị không bị ảnh hưởng, nhưng dịch vụ không được tải ở lần khởi động tiếp theo, khi systemd đọc /etc/systemd/system
.
Tuy nhiên, một dịch vụ bị vô hiệu hóa có thể được tải và sẽ được bắt đầu nếu một dịch vụ phụ thuộc vào nó được bắt đầu ; enable
và disable
chỉ định cấu hình hành vi tự động bắt đầu cho các đơn vị và trạng thái dễ bị ghi đè.
Một dịch vụ đeo mặt nạ là một dịch vụ có tệp đơn vị là một liên kết tượng trưng /dev/null
. Điều này làm cho "không thể" tải dịch vụ, ngay cả khi được yêu cầu bởi dịch vụ khác, được kích hoạt.
Khi bạn mask
cung cấp dịch vụ, một liên kết tượng trưng được tạo từ /etc/systemd/system
đến /dev/null
, để lại tập tin đơn vị gốc ở nơi khác. Khi bạn unmask
một dịch vụ, symlink sẽ bị xóa.
Tuy nhiên, tôi đã nhận thấy rằng các lệnh này không phải lúc nào cũng được vinh danh.
Khi tôi cố gắng che dấu hầu hết các dịch vụ, nó thất bại:
$ sudo systemctl mask bluetooth.service
Failed to execute operation: Invalid argument
Tất nhiên, tôi đã dừng dịch vụ trước. @Anwar đề xuất mặt nạ chỉ có thể cho các dịch vụ không quan trọng.
Bộc lộ một dịch vụ đeo mặt nạ, trừ khi tôi tự đeo mặt nạ, cũng thất bại (âm thầm). Tôi tin rằng điều này là do không có tệp đơn vị cho dịch vụ ở bất cứ đâu, ngoại trừ ở dạng liên kết tượng trưng /dev/null
, lần này là /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)
Tôi không phải là người duy nhất gặp vấn đề này
Để thực sự vạch mặt dịch vụ đeo mặt nạ x11-common, tôi đã phải xóa symlink đến /dev/null
và sudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload
. Bây giờ khi tôi truy vấn nó, systemctl status x11-common
tôi thấy dịch vụ có một vòng tròn màu xanh lá cây đẹp và được tải và kích hoạt (thoát) mặc dù nó không có tệp đơn vị.
Để tham khảo thêm bài viết này về Cách sử dụng Systemctl có thể được sử dụng.