systemctl, làm thế nào để vạch mặt


27
root@gcomputer:~# systemctl status x11-common
● x11-common.service
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

Tôi đã thử systemctl unmask x11-commonsystemctl unmask x11-common.serviceđiều đó không thay đổi gì cả.

Làm thế nào để tôi vạch mặt nó?

Câu trả lời:


35

Các lệnh bạn đang sử dụng đều đúng . Xem thêm hướng dẫn .

Có vẻ như unmasklệ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 masklà 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/nulltrong /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.servicecũ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.


Ok, câu hỏi tiếp theo: Nếu nó thậm chí được che dấu trên hệ thống của bạn, dịch vụ này để làm gì? Có vẻ như nó không thực sự cần thiết nếu nó được đeo mặt nạ cho cả hai chúng tôi.
Albert

@Albert [Xem tại đây.] ( Askubfox.com/questions/712276/ mẹo ) có vẻ như dịch vụ này hoạt động mà không có tệp đơn vị systemd (nó có tệp trong /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 ...
Zanna

nếu có bản cập nhật cho systemd, tệp đơn vị được cài đặt lại, vì vậy đây không thực sự là một giải pháp cấu trúc
hbogert

@hbogert điều đó xảy ra ngay cả khi không có tệp đơn vị nào ngoài symlink đến /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
Zanna

Bạn có thể mô tả câu đầu tiên của bạn theo các tệp chính xác trong trường hợp này (vì tôi không thực sự hiểu kịch bản mô tả của bạn)?
hbogert

2

Đó 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ạ.


0

Làm theo các bước dưới đây:

  1. 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
    
  2. Đ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/
    
  3. Bản cập nhật systemd:

    systemctl daemon-reload
    
  4. Sau đó khởi động lại dịch vụ:

    systemctl restart systemd-hostnamed
    

Bây giờ bạn có thể chạy hostnamectlmà không cần treo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.