Câu trả lời:
Các lệnh bạn đang sử dụng đều đúng . Xem thêm hướng dẫn .
Có vẻ như unmask
lệnh thất bại khi không có tệp đơn vị hiện có trong hệ thống ngoài liên kết tượng trưng đến /dev/null
. Nếu bạn mask
là một dịch vụ, thì điều đó sẽ tạo ra một liên kết tượng trưng mới /dev/null
trong /etc/systemd/system
đó systemd tìm các tệp đơn vị để tải khi khởi động. Trong trường hợp này, không có tập tin đơn vị thực sự.
Những người khác dường như có vấn đề tương tự
x11-common.service
cũng được che dấu trên hệ thống của tôi. Bạn có thể sửa nó như thế này:
Trước tiên hãy kiểm tra xem tệp đơn vị là một liên kết tượng trưng đến /dev/null
file /lib/systemd/system/x11-common.service
nó sẽ trở lại:
/lib/systemd/system/x11-common.service: symbolic link to /dev/null
trong trường hợp này, xóa nó
sudo rm /lib/systemd/system/x11-common.service
Vì bạn đã thay đổi tệp đơn vị, bạn cần chạy tệp này:
sudo systemctl daemon-reload
Bây giờ hãy kiểm tra trạng thái:
systemctl status x11-common
nếu không nói đã tải và đang chạy (nếu vòng tròn vẫn còn màu đỏ), hãy cài đặt lại gói:
sudo apt-get install --reinstall x11-common
và tải lại daemon một lần nữa
sudo systemctl daemon-reload
và kiểm tra trạng thái một lần nữa
systemctl status x11-common
Bây giờ nó đang hoạt động và đang chạy :) Dịch vụ không có tệp đơn vị systemd, nhưng systemd vui vẻ sử dụng tập lệnh cho nó /etc/init.d
.
/etc/init/
...). Bạn có thể muốn hỏi một câu hỏi mới. Những gì tôi đã làm không có sự khác biệt rõ ràng, chỉ có dịch vụ hiển thị là đã tải, đã bật, đã dừng (đang hoạt động khi khởi động) (màu xanh lá cây) thay vì tải chết mặt nạ (màu đỏ). Tôi nên đọc nhật ký của mình ...
/dev/null
? Bạn nói đúng về câu trả lời của tôi. Tôi sẽ gọi giải pháp này là một cách giải quyết cho một ... hành vi khó hiểu ... của systemd
Đó có thể là dịch vụ của bạn có tệp ghi đè trống, như thế này:
● redis-server.service - Lưu trữ khóa-giá trị nâng cao Đã tải: đã tải (/lib/systemd/system/redis-server.service; masked; nhà cung cấp cài sẵn: đã bật) Drop-In: / etc / systemd / system / redis-server .service.d └─limit.conf
Kiểm tra xem có giới hạn không. Nếu có, xin vui lòng loại bỏ nó. Sau đó, dịch vụ nên được lột mặt nạ.
Làm theo các bước dưới đây:
systemctl edit systemd-hostnamed
Thêm 2 dòng bên dưới rồi thoát trình chỉnh sửa (đừng quên lưu khi được nhắc):
[Service]
PrivateNetwork=no
Điều này sẽ tạo một tập tin override.conf với 2 dòng trên trong thư mục:
/etc/systemd/system/systemd-hostnamed.service.d/
Bản cập nhật systemd:
systemctl daemon-reload
Sau đó khởi động lại dịch vụ:
systemctl restart systemd-hostnamed
Bây giờ bạn có thể chạy hostnamectl
mà không cần treo.