Rain WikiWindows · Linux · Android

Các unit của systemd và systemctl

Dịch vụCác bản phân phối dùng systemd

Unit của systemd là một đối tượng cấu hình mà systemd, hệ thống init của hầu hết các bản phân phối Linux, quản lý: các dịch vụ, socket, bộ hẹn giờ, điểm gắn kết và nhiều thứ khác. Các unit được mô tả bởi các tệp unit như /etc/systemd/system/<name>.service và được điều khiển bằng lệnh systemctl.

1Các loại unit

.service chạy một chương trình, .socket khởi động một dịch vụ khi có kết nối đến, .timer chạy một unit theo lịch trình, .mount và .automount xử lý các hệ thống tệp, .target nhóm các unit thành các trạng thái như multi-user.target.

2Nơi lưu trữ các tệp unit

Các gói cài đặt unit vào /usr/lib/systemd/system (hoặc /lib/systemd/system). Các thay đổi cục bộ thuộc về /etc/systemd/system, nơi có quyền ưu tiên cao hơn. systemctl edit <unit> tạo ra một tệp ghi đè thay vì thay đổi tệp của gói cài đặt.

3Các lệnh thường dùng

systemctl status <unit> hiển thị trạng thái và các dòng nhật ký gần nhất. 'start', 'stop' và 'restart' có tác dụng ngay lập tức; 'enable' và 'disable' kiểm soát việc khởi động cùng hệ thống; 'enable --now' thực hiện cả hai. systemctl --failed liệt kê các unit bị lỗi, và systemctl daemon-reload đọc lại các tệp unit sau khi có thay đổi.

Cách kiểm tra một dịch vụ bị lỗi

  1. Liệt kê các unit bị lỗi: systemctl --failed
  2. Hiển thị trạng thái và các thông báo gần đây: systemctl status <unit>
  3. Đọc toàn bộ nhật ký của lần khởi động này: journalctl -u <unit> -b
  4. Sau khi sửa cấu hình: sudo systemctl restart <unit>

Lưu ý

  • Thay đổi các unit của gói cài đặt bằng systemctl edit, không nên chỉnh sửa các tệp trong /usr/lib/systemd/system: các bản cập nhật sẽ ghi đè lên chúng.
  • Không nên vô hiệu hóa các unit mà bạn không biết rõ, chẳng hạn như systemd-journald hoặc dbus.

Nguồn

  1. systemctl(1) man7.org
  2. systemd.unit(5) man7.org
  3. systemd.timer(5) man7.org

Xem xét lần cuối: