Lệnh systemctl
là một công cụ dòng lệnh trong Linux, giúp quản lý dịch vụ và trạng thái hệ thống thông qua systemd
. Bài viết này sẽ giúp bạn hiểu rõ lệnh systemctl là gì, cách kiểm tra và liệt kê các dịch vụ đang hoạt động, cũng như cách phân tích trạng thái hệ thống một cách hiệu quả. Ngoài ra, bạn sẽ nắm được các lệnh chẩn đoán quan trọng và một số ví dụ nâng cao như quản lý dependencies, cấu hình service hay điều khiển reboot và shutdown.
Điểm chính cần nắm
- Lệnh systemctl là gì?: Giới thiệu công cụ
systemctl
và vai trò của nó trong việc quản lý dịch vụ với systemd. - Cách liệt kê các dịch vụ đang hoạt động: Hướng dẫn cách hiển thị danh sách dịch vụ đang chạy bằng lệnh systemctl.
- Kiểm tra trạng thái dịch vụ: Trình bày cách kiểm tra hoạt động, trạng thái và log của một dịch vụ cụ thể.
- Một số lệnh hữu ích khi làm việc với systemd/systemctl: Tổng hợp các lệnh hỗ trợ chẩn đoán, phân tích và kiểm tra hệ thống.
- Một số ví dụ nâng cao khi sử dụng systemctl trong Linux: Hướng dẫn thao tác nâng cao như kill, xem cấu hình, kiểm tra dependencies và điều khiển hệ thống.
- Vietnix – Giải pháp lưu trữ hiệu suất cao cho website ổn định và nhanh chóng: Giới thiệu dịch vụ hosting và VPS tốc độ cao, hỗ trợ 24/7 từ Vietnix.
- FAQ: Trả lời các câu hỏi thường gặp giúp người dùng hiểu rõ hơn về cách sử dụng lệnh
systemctl
.
Lệnh systemctl
là gì?
Lệnh systemctl
là một tiện ích dòng lệnh cho phép bạn tương tác với systemd – trình quản lý hệ thống và dịch vụ hiện đại trong Linux. Hầu hết các bản phân phối phổ biến như Ubuntu, CentOS, Debian,… đều đã dùng systemd làm mặc định, và systemctl
chính là công cụ chính để quản lý các thành phần bên trong đó.

Systemd chịu trách nhiệm cho rất nhiều tác vụ quan trọng như:
- Khởi động hệ thống
- Quản lý các dịch vụ (web server, SSH, cron,…)
- Ghi log hệ thống
- Gắn kết hệ thống file tự động
- Thiết lập hostname, thời gian hệ thống và nhiều hơn nữa
Systemd hoạt động dựa trên các “unit” – có thể là service
, socket
, target
, mount
,… Và lệnh systemctl
giúp bạn kiểm soát các unit này: khởi động, dừng, kích hoạt, kiểm tra trạng thái hoặc phân tích lỗi.
Cách liệt kê các dịch vụ đang hoạt động
Nếu bạn muốn biết hệ thống đang chạy những dịch vụ nào, hãy dùng lệnh:
sudo systemctl list-units --type service
Lệnh này sẽ liệt kê các service đã được load và đang active. Kết quả gồm các cột như:
- UNIT: Tên service
- LOAD: Service đã load vào bộ nhớ hay chưa
- ACTIVE: Trạng thái kích hoạt (active, inactive, failed,…)
- SUB: Trạng thái cụ thể hơn (running, exited, dead,…)
- DESCRIPTION: Mô tả ngắn gọn
Một vài biến thể hữu ích khác:
- Xem cả dịch vụ đang inactive:
sudo systemctl list-units --type=service --all
- Xem toàn bộ unit file (bao gồm cả chưa chạy):
sudo systemctl list-unit-files
Kiểm tra trạng thái dịch vụ
Một trong những thao tác cơ bản nhưng rất quan trọng khi làm việc với Linux là kiểm tra trạng thái của các dịch vụ. Bạn có thể thực hiện điều này dễ dàng bằng lệnh:
sudo systemctl status <service_name>
Trong đó, <tên_service>
là tên của dịch vụ bạn muốn kiểm tra, ví dụ như nginx
, cron
, ssh
,…
Ví dụ kiểm tra Bluetooth:
sudo systemctl status bluetooth
Lệnh trên sẽ hiển thị các thông tin như:
- Trạng thái hiện tại (
active
,inactive
,failed
,…) - PID của tiến trình chính
- File unit đang sử dụng
- Thời gian dịch vụ được kích hoạt
- Một vài dòng log gần nhất của dịch vụ

Nếu chỉ muốn kiểm tra dịch vụ có đang active hay không, dùng lệnh sau để nhận kết quả gọn gàng, chỉ trả về một từ:
systemctl is-active bluetooth
Kết quả thường là:
failed
– dịch vụ gặp lỗi khi khởi độngactive
– dịch vụ đang chạyinactive
– dịch vụ không chạy

Một số lệnh hữu ích khi làm việc với systemd/systemctl
Ngoài các thao tác trực tiếp với lệnh systemctl
, bạn có thể kết hợp nhiều lệnh khác trong Linux để kiểm tra môi trường, chẩn đoán lỗi và tối ưu hệ thống sử dụng systemd. Dưới đây là một số lệnh phổ biến:
1. Kiểm tra phiên bản của systemctl
và xác nhận systemd
có mặt trong hệ thống
systemctl --version
Lệnh này sẽ hiển thị phiên bản của systemd
và systemctl
hiện có. Qua đó, bạn biết chắc rằng hệ thống đang sử dụng systemd thay vì init truyền thống.

2. Kiểm tra vị trí cài đặt của systemd và systemctl
whereis systemd
whereis systemctl
Lệnh whereis
giúp bạn xác định các tệp thực thi, thư mục cấu hình hoặc tài liệu man liên quan.

3. Kiểm tra systemd có đang chạy hay không
ps -eaf | grep [s]ystemd
Lệnh này tìm tiến trình systemd
đang hoạt động, giúp xác minh systemd thực sự đang quản lý hệ thống.

4. Phân tích thời gian khởi động hệ thống
systemd-analyze
Cho biết tổng thời gian khởi động, bao gồm kernel, initrd và userspace – rất hữu ích khi bạn cần tối ưu boot time.

5. Liệt kê tất cả các unit đang chạy
systemctl list-units
Hiển thị danh sách các unit hiện đang hoạt động, không chỉ riêng service mà còn bao gồm mount, socket, target,…

6. Liệt kê tất cả unit đã được cài đặt (bất kể đang chạy hay không)
systemctl list-unit-files
Thông tin này giúp bạn biết dịch vụ nào đã được enable hoặc disable, kể cả khi chưa chạy.

7. Xem các unit bị lỗi khi khởi động hoặc đang ở trạng thái thất bại
systemctl list-units
Rất hữu ích để phát hiện sớm sự cố và xử lý lỗi nhanh chóng.

8. Kiểm tra một service có đang được kích hoạt khởi động cùng hệ thống hay không
systemctl is-enabled crond.service
Kết quả có thể là enabled
, disabled
, static
, hoặc masked
.

9. Kiểm tra trạng thái chi tiết của một dịch vụ cụ thể
systemctl status firewalld.service
Cho bạn biết dịch vụ có đang hoạt động không, PID, log gần nhất và thời điểm khởi động.

Một số ví dụ nâng cao khi sử dụng systemctl
trong Linux
Khi đã quen với các thao tác cơ bản, bạn có thể sử dụng systemctl
để quản lý dịch vụ một cách linh hoạt và hiệu quả hơn. Dưới đây là một số ví dụ thực tế giúp bạn làm chủ công cụ này:
1. Khởi động, dừng, khởi động lại, tải lại và kiểm tra trạng thái dịch vụ
systemctl start httpd.service # Khởi động dịch vụ httpd
systemctl restart httpd.service # Khởi động lại dịch vụ (dừng + chạy lại)
systemctl stop httpd.service # Dừng dịch vụ
systemctl reload httpd.service # Tải lại cấu hình dịch vụ mà không dừng dịch vụ
systemctl status httpd.service # Kiểm tra trạng thái dịch vụ
Bạn có thể thay thế bằng tên dịch vụ khác, vì:
httpd
là tên dịch vụ của Apache trên CentOS, Fedora, RHEL.- Trên Ubuntu/Debian, dịch vụ Apache có tên là
apache2
.
2. Kết thúc (kill) một dịch vụ ngay lập tức
systemctl kill httpd
Lệnh này sẽ gửi tín hiệu để dừng dịch vụ httpd
hoàn toàn, khác với stop
ở chỗ kill
sẽ kết thúc ngay lập tức, không qua quá trình dừng dịch vụ thông thường.
3. Xem thông tin cấu hình chi tiết của một dịch vụ
systemctl show httpd
Lệnh này trả về rất nhiều thông tin chi tiết về cấu hình của dịch vụ, bao gồm các tham số khởi động, trạng thái, đường dẫn file, các biến môi trường, và nhiều hơn nữa.
4. Liệt kê tất cả các dịch vụ, unit phụ thuộc (dependencies) của một dịch vụ
systemctl list-dependencies httpd.service
Lệnh này giúp bạn hiểu dịch vụ httpd
phụ thuộc vào những unit nào để chạy, rất hữu ích khi xử lý lỗi hoặc tối ưu hệ thống.
5. Điều khiển trạng thái hệ thống (shutdown, reboot, suspend,…
Bạn cũng có thể dùng systemctl
để thay thế các lệnh truyền thống như reboot
hay halt
:
systemctl reboot # Khởi động lại hệ thống
systemctl halt # Tắt hệ thống
systemctl suspend # Tạm ngừng hệ thống (ngủ)
systemctl hibernate # Ngủ đông (lưu trạng thái RAM vào ổ cứng và tắt)
systemctl hybrid-sleep # Kết hợp giữa suspend và hibernate
Vietnix – Giải pháp lưu trữ hiệu suất cao cho website ổn định và nhanh chóng
Vietnix cung cấp các dịch vụ hosting, VPS và máy chủ tối ưu tốc độ, đảm bảo hiệu suất ổn định, bảo mật cao và thời gian phản hồi nhanh. Với hệ thống máy chủ hiện đại đặt tại Việt Nam cùng đội ngũ kỹ thuật giàu kinh nghiệm, Vietnix giúp website hoạt động mượt mà, an toàn, kể cả trong những thời điểm tải cao. Ngoài ra, bạn sẽ luôn nhận được sự hỗ trợ tận tâm 24/7 từ đội ngũ kỹ thuật, giúp xử lý sự cố nhanh chóng và đảm bảo vận hành liên tục.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.
Câu hỏi thường gặp
Lệnh systemctl là gì và dùng để làm gì trong Linux?
systemctl
là công cụ dòng lệnh để quản lý dịch vụ (services) và các đơn vị (units) trong hệ thống sử dụng systemd. Nó giúp khởi động, dừng, kiểm tra trạng thái dịch vụ, và kiểm soát quá trình khởi động hệ thống.
Làm sao để kiểm tra trạng thái một dịch vụ với lệnh systemctl?
Dùng lệnh systemctl status <tên-dịch-vụ>
. Ví dụ: systemctl status apache2
.
Tại sao máy chủ Ubuntu báo “systemctl command not found”?
Có thể là hệ thống đang dùng init thay vì systemd, hoặc gói systemd chưa được cài. Bạn có thể kiểm tra với ps -p 1 -o comm=
hoặc cài systemd bằng sudo apt install systemd
.
Systemctl có thể dùng trên mọi phiên bản Ubuntu không?
Có, miễn là hệ thống đang dùng systemd (Ubuntu 15.04 trở lên dùng mặc định).
Vì sao một số dịch vụ không khởi động được bằng systemctl trên Ubuntu?
Có thể do thiếu quyền root, file unit sai cấu hình, hoặc service phụ thuộc chưa được load. Kiểm tra lỗi cụ thể bằng journalctl -xe
hoặc systemctl status
.
Có thể tạo dịch vụ tùy chỉnh (custom service) bằng systemctl không?
Có, bạn có thể tạo file .service
trong /etc/systemd/system/
và dùng systemctl daemon-reload
để nhận diện.
Lời kết
Thành thạo các lệnh systemctl giúp bạn kiểm soát dịch vụ hiệu quả, tối ưu hóa vận hành hệ thống và xử lý sự cố nhanh chóng. Nếu bạn có bất kỳ thắc mắc nào khi làm việc với systemctl, đừng ngần ngại để lại câu hỏi ở phần bình luận. Hoặc bạn có thể tham khảo thêm tài liệu trên blog để đào sâu từng lệnh cụ thể. Đừng quên lưu lại bài viết để sử dụng khi cần thiết nhé.
Mọi người cũng xem: