Làm cách nào để xóa (không tắt / mặt nạ) một đơn vị trong Systemd?


7

Đôi khi tôi tạo một đơn vị mới do nhầm lẫn, sau đó tôi phải truy cập / etc / systemd để tìm đơn vị và xóa tất cả các tệp / script / links / links liên quan của nó.

Có cách nào tốt hơn? Giống như một lệnh duy nhất xóa mọi thứ liên quan đến tên đơn vị?


2
Chính xác ý bạn là gì với "tập tin / tập lệnh / liên kết / vv."?
Elias Probst 14/12/13

@EliasProbst các tệp và biểu tượng liên kết systemd tự động tạo sau khi tôi chạy systemd enable <service_name>.
Howard

Phân phối nào?
Nils

Câu trả lời:


4

Giống như một lệnh duy nhất xóa mọi thứ liên quan đến tên đơn vị?

Tôi nghĩ bạn cần hai lệnh, một để phân tách đơn vị và một để xóa tệp đơn vị.

các tập tin và biểu tượng liên kết systemd tự động tạo sau khi tôi chạy systemd enable

Bạn có ý nghĩa systemctl enable .... Dù sao, từ man systemctl:

tắt [NAME ...]

Vô hiệu hóa một hoặc nhiều đơn vị. Thao tác này sẽ xóa tất cả các liên kết tượng trưng đến các tệp đơn vị đã chỉ định khỏi thư mục cấu hình đơn vị và do đó hoàn tác các thay đổi được thực hiện bằng cách bật. Tuy nhiên, lưu ý rằng việc này sẽ xóa tất cả các liên kết tượng trưng đến các tệp đơn vị (nghĩa là bao gồm cả bổ sung thủ công ), không chỉ các liên kết thực sự được tạo bởi enable. Cuộc gọi này hoàn toàn tải lại cấu hình daemon systemd sau khi hoàn thành việc vô hiệu hóa các đơn vị. Lưu ý rằng lệnh này không hoàn toàn dừng các đơn vị đang bị vô hiệu hóa.

Các liên kết tượng trưng ở đó để liên kết đơn vị với một mục tiêu - điều này giống như các liên kết tượng trưng được sử dụng trong các rcN.dthư mục sysV runlevel. 1 Vô hiệu hóa một đơn vị sẽ loại bỏ những đơn vị đó, vì chúng là thứ "kích hoạt" nó được chạy với bất kỳ mục tiêu nào.

Khi chúng không còn nữa, thứ duy nhất còn lại là .servicetệp bạn có thể đã tạo. Xóa / xóa nó và bạn đã hoàn tất.


1. Để rõ ràng: bạn không sử dụng sysV vì vậy nếu quan sát đó không có ý nghĩa gì với bạn, đừng lo lắng về điều đó. Có thể có các /etc/rcN.dthư mục trên hệ thống của bạn, bỏ qua chúng.


0

insservnên thực hiện công việc đó - không có vấn đề nếu sysVinit hoặc systemD .

Tham khảo: OpenSuSE

Ví dụ: insserv -d nfs vô hiệu hóa khởi động dịch vụ nfs .


1
Ý anh là gì? Là sử dụng insservmột cách để xóa một đơn vị trong systemd? Bạn có thể cho một ví dụ?
Neil

@Neil Tôi đã cập nhật câu trả lời của tôi với một ví dụ.
Nils
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.