Để liệt kê tất cả các dịch vụ sẽ tự động chạy khi hệ thống khởi động, bạn có thể sử dụng lệnh systemctl với tham số list-unit-files và grep để lọc các dịch vụ được kích hoạt.
Dưới đây là các cách để xem danh sách dịch vụ khởi động:
Sử dụng lệnh sau để liệt kê tất cả các dịch vụ đã được kích hoạt để tự động chạy khi khởi động:
bash
Copy code
systemctl list-unit-files --type=service | grep enabled
Lệnh này sẽ trả về danh sách các dịch vụ với trạng thái enabled, tức là chúng sẽ được khởi động tự động khi hệ thống khởi động.
Nếu bạn muốn kiểm tra tất cả các dịch vụ (bao gồm cả dịch vụ đang chạy và không chạy), bạn có thể sử dụng:
bash
Copy code
systemctl list-units --type=service --all
Lệnh này sẽ hiển thị tất cả các dịch vụ trên hệ thống, với trạng thái hiện tại của mỗi dịch vụ (chạy, dừng, hoặc bị lỗi).
Nếu bạn muốn kiểm tra trạng thái của một dịch vụ cụ thể (ví dụ: ddclient), bạn có thể sử dụng lệnh:
bash
Copy code
systemctl is-enabled ddclient
Lệnh này sẽ trả về trạng thái của dịch vụ ddclient, ví dụ: enabled (được kích hoạt để tự động chạy) hoặc disabled (không tự động chạy khi khởi động).
Để xem dịch vụ nào đang chạy, bạn có thể sử dụng lệnh:
bash
Copy code
systemctl list-units --type=service
Lệnh này sẽ hiển thị danh sách các dịch vụ hiện tại và trạng thái của chúng (chạy hay không).
Các trạng thái dịch vụ trong systemd có thể có một số chỉ báo khác nhau, mỗi chỉ báo thể hiện tình trạng cụ thể của dịch vụ đó.
Khi một dịch vụ có trạng thái masked, có nghĩa là dịch vụ đó được ngừng hoàn toàn và không thể khởi động. Đây là cách để ngăn dịch vụ khởi động một cách có chủ ý. Thực tế, khi dịch vụ bị masked, hệ thống sẽ tạo một liên kết symbolic đến /dev/null cho tệp unit của dịch vụ đó, khiến dịch vụ không thể thực thi.
Ví dụ về lệnh để mask một dịch vụ:
bash
Copy code
sudo systemctl mask ddclient
Để bỏ mask một dịch vụ:
bash
Copy code
sudo systemctl unmask ddclient
Dịch vụ masked sẽ không thể được khởi động, dù bạn có cố gắng khởi động nó bằng các lệnh như systemctl start hay systemctl restart.
Trạng thái indirect cho biết một dịch vụ không được trực tiếp kích hoạt bởi người dùng, mà thay vào đó, nó được kích hoạt thông qua một dịch vụ khác, thông qua các phụ thuộc (dependencies). Khi một dịch vụ có trạng thái indirect, có nghĩa là dịch vụ đó được gọi từ một dịch vụ khác hoặc một nhóm dịch vụ.
Ví dụ: Một dịch vụ có thể được khởi động không trực tiếp mà thông qua một dịch vụ hoặc nhóm dịch vụ phụ thuộc vào nó. Ví dụ, một dịch vụ mạng có thể yêu cầu dịch vụ DNS khởi động đầu tiên. Dịch vụ DNS có thể có trạng thái indirect vì nó được yêu cầu bởi một dịch vụ khác.
Khi trạng thái là enable-runtime, dịch vụ đó được kích hoạt trong một khoảng thời gian nhất định và không được kích hoạt vĩnh viễn. Các dịch vụ với trạng thái này sẽ chỉ khởi động và hoạt động trong một phiên làm việc của hệ thống, nhưng chúng không được giữ khi hệ thống khởi động lại. Đây là một cấu hình cho phép dịch vụ chỉ hoạt động trong thời gian cần thiết và sẽ bị vô hiệu hóa sau khi hệ thống được khởi động lại.
Lý do sử dụng enable-runtime có thể là để dịch vụ chỉ chạy khi cần, chẳng hạn như các dịch vụ liên quan đến cấu hình tạm thời hoặc ứng dụng chỉ cần chạy trong phiên làm việc cụ thể.
Tóm lại: