Nếu là người dùng hoặc quản trị viên Linux, bạn cần biết cách quản lý các dịch vụ trên hệ thống của mình. Dịch vụ là các chương trình chạy trong nền và cung cấp chức năng thiết yếu, chẳng hạn như kết nối mạng, in, ghi nhật ký, v.v.
Nhưng làm thế nào để bạn liệt kê, bắt đầu, dừng, bật, tắt hoặc khởi động lại các dịch vụ trên Linux? Câu trả lời là lệnh systemctl. Lệnh này là một phần của systemd, trình quản lý dịch vụ và hệ thống hiện đại dành cho các bản phân phối Linux như Ubuntu và Debian.
Mục lục
Nếu bạn là người mới sử dụng Linux và muốn quản lý các dịch vụ này bằng systemctel, hãy làm theo các bước bên dưới.
Liệt kê tất cả các dịch vụ với systemctl
Để liệt kê tất cả các dịch vụ trên hệ thống Linux của bạn, hãy chạy lệnh này trong thiết bị đầu cuối:
sudo systemctl list-units –type service
Điều này sẽ hiển thị cho bạn một bảng có năm cột: ĐƠN VỊ, TẢI, HOẠT ĐỘNG, PHỤ và MÔ TẢ.
Cột UNIT hiển thị tên của tệp đơn vị dịch vụ, là tệp cấu hình và định nghĩa của dịch vụ. Tệp này chứa thông tin về chức năng của dịch vụ và cách quản lý dịch vụ đó. Bạn cũng có thể xem mô tả nhanh cho dịch vụ trong cột MÔ TẢ.
Cột LOAD cho biết tệp đơn vị dịch vụ có được tải vào bộ nhớ hay không. Cột HOẠT ĐỘNG hiển thị nếu đó là một dịch vụ đang chạy hay không. Cuối cùng, cột SUB hiển thị trạng thái phụ của dịch vụ, chẳng hạn như đang chạy, đã thoát hoặc không thành công.
Bạn cũng có thể sử dụng tùy chọn-a hoặc –all thay vì –type dịch vụ để liệt kê tất cả các loại đơn vị, không chỉ dịch vụ.
Liệt kê các dịch vụ đang hoạt động với systemctl
Nếu bạn chỉ muốn xem các dịch vụ hiện đang hoạt động (đang chạy) trên hệ thống của mình, hãy chạy lệnh này trong thiết bị đầu cuối Linux:
sudo systemctl list-units –type service –state active
Điều này sẽ lọc ra các dịch vụ không hoạt động (đã dừng) hoặc bị lỗi.
Liệt kê các dịch vụ không hoạt động với systemctl
Tương tự, nếu bạn chỉ muốn xem các dịch vụ hiện không hoạt động (đã dừng) trên hệ thống của mình, hãy chạy lệnh này trong terminal:
sudo systemctl list-units –type service –state inactive
Điều này sẽ lọc ra các dịch vụ đang hoạt động (đang chạy) hoặc bị lỗi.
Liệt kê các dịch vụ bị lỗi với systemctl
Nếu bạn muốn xem các dịch vụ không thể khởi động hoặc dừng trên hệ thống của mình, hãy mở thiết bị đầu cuối và chạy lệnh này:
sudo systemctl list-units –type service –state fail
Lệnh này sẽ lọc ra mọi dịch vụ hiện đang hoạt động (đang chạy) hoặc không hoạt động (đã dừng).
Liệt kê các dịch vụ đã bật với systemctl
Để xem dịch vụ nào được bật để tự động khởi động khi khởi động trên hệ thống của bạn, hãy chạy lệnh này trong thiết bị đầu cuối:
sudo systemctl list-unit-files –type service –state enable
Điều này sẽ hiển thị cho bạn một bảng có hai cột: TỆP ĐƠN VỊ và TIỂU BANG. Cột TỆP ĐƠN VỊ hiển thị tên của tệp đơn vị dịch vụ. Cột STATE cho biết dịch vụ có được bật hay không.
Liệt kê các dịch vụ bị vô hiệu hóa với systemctl
Để xem dịch vụ nào bị vô hiệu hóa và sẽ không tự động khởi động khi khởi động trên hệ thống của bạn, hãy mở Linux của bạn terminal và chạy lệnh này:
sudo systemctl list-unit-files –type service –state bị vô hiệu hóa
Lệnh này sẽ lọc ra các dịch vụ được bật hoặc bị che.
Hiển thị chi tiết dịch vụ với systemctl
Để hiển thị thêm chi tiết về một dịch vụ cụ thể trên hệ thống của bạn, hãy chạy lệnh này trong thiết bị đầu cuối:
Sudo systemctl status
Thay thế
Điều này sẽ hiển thị cho bạn thông tin như mô tả, trạng thái tải, trạng thái hoạt động, trạng thái phụ, ID tiến trình (PID), mức sử dụng bộ nhớ, mức sử dụng CPU và dịch vụ gần đây khúc gỗ.
Bạn cũng có thể sử dụng tiểu ban hiển thị thay vì trạng thái để hiển thị tất cả các thuộc tính dịch vụ ở định dạng tên=giá trị.
Khởi động một dịch vụ với systemctl
Để bắt đầu một dịch vụ bị dừng trên hệ thống của bạn, hãy chạy lệnh này trong thiết bị đầu cuối Linux của bạn:
sudo systemctl start
Thay thế
Thao tác này sẽ khởi động dịch vụ trong nền và quay lại lời nhắc. Bạn có thể sử dụng tiểu ban trạng thái để xác minh rằng dịch vụ đang chạy.
Dừng dịch vụ bằng systemctl
Để dừng dịch vụ đang chạy trên hệ thống của bạn, hãy chạy lệnh này trong thiết bị đầu cuối:
sudo systemctl stop
Thay
Thao tác này sẽ dừng dịch vụ trong nền và quay lại dấu nhắc. Bạn có thể sử dụng tiểu ban trạng thái để xác minh rằng dịch vụ đã bị dừng.
Khởi động lại dịch vụ với systemctl
Bạn muốn chỉnh sửa và tải lại tệp cấu hình của dịch vụ cũng như áp dụng các thay đổi? Nếu vậy, bạn sẽ cần phải khởi động lại dịch vụ sau đó.
Để khởi động lại một dịch vụ đang chạy trên hệ thống của bạn, hãy mở thiết bị đầu cuối của bạn và chạy lệnh sau:
sudo systemctl restart
Thay thế
Thao tác này sẽ dừng và bắt đầu dịch vụ ở chế độ nền và quay lại lời nhắc. Bạn có thể sử dụng tiểu ban trạng thái để xác minh rằng dịch vụ đang chạy.
Tải lại Dịch vụ bằng systemctl
Một số dịch vụ hỗ trợ tải lại cấu hình của chúng mà không cần dừng và khởi động. Tải lại một dịch vụ cho phép bạn thực hiện những thay đổi nhỏ đối với các tệp cấu hình của dịch vụ đó mà không cần khởi động lại chúng. Điều này nhanh hơn và ít gây gián đoạn hơn so với khởi động lại.
Để tải lại một dịch vụ hỗ trợ tính năng này, hãy sử dụng lệnh systemctl sau trong thiết bị đầu cuối:
sudo systemctl reload
Thay thế
Thao tác này sẽ tải lại dịch vụ ở chế độ nền và quay lại lời nhắc. Bạn có thể sử dụng tiểu ban trạng thái để xác minh rằng dịch vụ đang chạy.
Kích hoạt dịch vụ với systemctl
Để cho phép dịch vụ tự động bắt đầu khi khởi động trên hệ thống của bạn, hãy chạy lệnh này trong thiết bị đầu cuối:
sudo systemctl enable
Thay thế
Điều này sẽ tạo một liên kết tượng trưng từ tệp đơn vị dịch vụ đến một vị trí trong/etc/systemd/system, yêu cầu systemd khởi động nó khi khởi động.
Bạn cũng có thể sử dụng tùy chọn –now để bật và bắt đầu một dịch vụ đồng thời. Ví dụ:
sudo systemctl enable –now
Tắt Dịch vụ Với systemctl
Để tắt một Dịch vụ dịch vụ tự khởi động khi khởi động trên hệ thống của bạn, hãy chạy lệnh này trong thiết bị đầu cuối Linux:
sudo systemctl vô hiệu hóa
Thay thế
Thao tác này sẽ xóa liên kết tượng trưng khỏi/etc/systemd/system, liên kết này yêu cầu systemd không khởi động nó khi khởi động.
Bạn cũng có thể sử dụng tùy chọn –now để tắt và dừng một dịch vụ cùng lúc:
sudo systemctl disable –now
Liệt kê các dịch vụ được che giấu với systemctl
Che dấu một dịch vụ có nghĩa là liên kết tệp đơn vị của nó với/dev/null, điều này ngăn không cho nó được tải hoặc thao tác bởi systemd. Điều này thêm một lớp bảo vệ bổ sung.
Để xem những dịch vụ nào bị ẩn và không thể khởi động hoặc dừng theo cách thủ công hoặc tự động trên hệ thống của bạn, hãy chạy lệnh này trong thiết bị đầu cuối của PC Linux của bạn:
sudo systemctl list-unit-tệp –type service –state masked
Danh sách các dịch vụ ẩn danh sẽ xuất hiện trong một danh sách (với masked được liệt kê dưới cột STATE)
Che dấu Dịch vụ Với systemctl
Chạy lệnh này trong thiết bị đầu cuối để che dấu một dịch vụ đang được bắt đầu, dừng theo cách thủ công hoặc tự động trên hệ thống của bạn:
Sudo systemctl mask
Thay
Điều này sẽ tạo liên kết tượng trưng từ đơn vị dịch vụ file vào/dev/null để ngăn systemd tải hoặc thao tác nó.
Hiển thị một dịch vụ với systemctl
Bạn có thể vạch mặt một dịch vụ đã bị che giấu trước đó. Thao tác này sẽ xóa liên kết tượng trưng tới/dev/null và cho phép sử dụng và tải liên kết đó ở nơi khác.
Để vạch mặt một dịch vụ đã bị che khuất trước đó trên hệ thống của bạn, hãy chạy lệnh sau:
sudo systemctl unmask
Thay thế
Điều khiển PC Linux của bạn
Nếu PC Linux của bạn đang sử dụng systemd để quản lý các dịch vụ hệ thống, bạn có thể sử dụng lệnh systemctl để quản lý chúng. Bạn có thể bắt đầu, dừng, tải lại, vô hiệu hóa và kiểm soát các dịch vụ của mình, giúp bạn kiểm soát tốt hơn PC Linux của mình.
Một cách khác mà bạn có thể quản lý PC của mình là giới hạn quyền truy cập vào một số tệp nhất định. Bạn có thể sử dụng lệnh chmod trên PC Linux của mình để cho phép (hoặc không cho phép) truy cập.
Bạn không chắc bản phân phối Linux của mình có phù hợp không? Thay vào đó, bạn nên thử một bản phân phối Linux hàng đầu khác hoặc thậm chí thử một bản phân phối Linux di động. Sử dụng bản phân phối di động sẽ cho phép bạn chuyển đổi giữa chúng một cách dễ dàng.