Lệnh systemctl trong linux với các ví dụ dễ hiểu

Lệnh systemctl trong linux là một công cụ mạnh mẽ để quản lý các dịch vụ hệ thống. Nó cho phép bạn khởi động, dừng, khởi động lại và kiểm tra trạng thái của các dịch vụ một cách dễ dàng. Với systemctl trong linux, việc quản lý hệ thống trở nên trực quan và hiệu quả hơn rất nhiều.

Lệnh systemctl trong linux là gì?

Command systemctl in linux là một công cụ quản lý hệ thống mạnh mẽ, cho phép bạn kiểm soát các dịch vụ và đơn vị (units) khác nhau trên hệ thống Linux của mình. Nó giúp bạn khởi động, dừng, khởi động lại, và kiểm tra trạng thái của các dịch vụ một cách dễ dàng và hiệu quả. Với command systemctl in linux, bạn có thể quản lý các tiến trình chạy nền, các thiết bị phần cứng, và nhiều thành phần khác của hệ thống. Đây là một công cụ không thể thiếu cho bất kỳ người quản trị hệ thống Linux nào muốn duy trì sự ổn định và hiệu suất của hệ thống. Hãy làm quen với nó để làm chủ hệ thống Linux của bạn nhé!

Tìm hiểu Mục đích và Chức năng của systemctl

Trong bước này, bạn sẽ tìm hiểu về mục đích và chức năng của lệnh systemctl, công cụ chính để quản lý dịch vụ hệ thống trong Linux.

Lệnh systemctl là một phần của hệ thống init systemd, được nhiều bản phân phối Linux hiện đại sử dụng, bao gồm Ubuntu 22.04.

Systemd cung cấp một cách thống nhất để quản lý các dịch vụ hệ thống, cho phép bạn khởi động, dừng, bật và tắt dịch vụ, cũng như xem trạng thái và nhật ký của chúng.

Hãy bắt đầu bằng cách khám phá cách sử dụng cơ bản của systemctl:

## List all running services
sudo systemctl list-units --type=service

## Example output:
## UNIT                           LOAD   ACTIVE SUB     DESCRIPTION
## accounts-daemon.service        loaded active running Accounts Service
## acpid.service                  loaded active running ACPI event daemon
## apparmor.service               loaded active exited  AppArmor initialization
## ...

Lệnh này liệt kê tất cả các dịch vụ đang chạy trên hệ thống, hiển thị tên dịch vụ, trạng thái tải, trạng thái hoạt động và mô tả ngắn gọn.

Để xem trạng thái của một dịch vụ cụ thể, bạn có thể sử dụng lệnh con status:

## Check the status of the sshd service
sudo systemctl status sshd.service

## Example output:
## ● sshd.service - OpenSSH server daemon
##      Loaded: loaded (/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
##      Active: active (running) since Fri 2023-04-28 12:34:56 UTC; 1 day 2h ago
##        Docs: man:sshd(8)
##              man:sshd_config(5)
##    Main PID: 12345 (sshd)
##       Tasks: 1 (limit: 4915)
##      Memory: 12.8M
##      CGroup: /system.slice/sshd.service
##              └─12345 /usr/sbin/sshd -D

Kết quả này cung cấp thông tin chi tiết về dịch vụ sshd, bao gồm trạng thái hiện tại, thời điểm khởi động và ID tiến trình của dịch vụ đang chạy.

Bạn cũng có thể sử dụng systemctl để khởi động, dừng hoặc khởi động lại một dịch vụ:

## Start the sshd service
sudo systemctl start sshd.service

## Stop the sshd service
sudo systemctl stop sshd.service

## Restart the sshd service
sudo systemctl restart sshd.service

Các lệnh này cho phép bạn kiểm soát vòng đời của các dịch vụ hệ thống một cách hiệu quả.

Trong bước tiếp theo, bạn sẽ tìm hiểu cách sử dụng các lệnh systemctl bổ sung để quản lý dịch vụ hệ thống.

Quản Lý Các Dịch Vụ Hệ Thống Bằng Lệnh systemctl

Trong bước này, bạn sẽ học cách sử dụng các lệnh systemctl khác nhau để quản lý các dịch vụ hệ thống.

Chúng ta hãy bắt đầu bằng cách kích hoạt một dịch vụ để tự động khởi động khi hệ thống khởi động:

## Enable the sshd service to start automatically on boot
sudo systemctl enable sshd.service

## Example output:
## Created symlink /etc/systemd/system/multi-user.target.wants/sshd.service → /lib/systemd/system/sshd.service.

Lệnh này tạo một liên kết tượng trưng đến file unit của dịch vụ, đảm bảo sshd sẽ tự động chạy khi hệ thống khởi động.

Để tắt một dịch vụ không cho tự động khởi động, bạn có thể dùng lệnh con disable:

## Disable the sshd service from starting automatically on boot
sudo systemctl disable sshd.service

## Example output:
## Removed /etc/systemd/system/multi-user.target.wants/sshd.service.

Bây giờ, hãy thử khởi động và dừng một dịch vụ theo cách thủ công:

## Start the sshd service
sudo systemctl start sshd.service

## Stop the sshd service
sudo systemctl stop sshd.service

Các lệnh này cho phép bạn kiểm soát trạng thái hoạt động của dịch vụ sshd.

Nếu bạn cần khởi động lại một dịch vụ, bạn có thể sử dụng lệnh con restart:

## Restart the sshd service
sudo systemctl restart sshd.service

Lệnh này sẽ dừng dịch vụ trước, sau đó khởi động lại dịch vụ đó.

Cuối cùng, bạn có thể kiểm tra trạng thái của một dịch vụ bằng lệnh con status:

## Check the status of the sshd service
sudo systemctl status sshd.service

Lệnh này sẽ hiển thị trạng thái hiện tại của dịch vụ sshd, bao gồm việc nó có đang chạy hay không, thời điểm nó được khởi động và bất kỳ thông báo lỗi nào.

Trong bước tiếp theo, bạn sẽ học cách cấu hình khởi động dịch vụ tự động với systemctl.

Cấu hình Khởi động Dịch vụ Tự động với systemctl

Trong bước cuối cùng này, bạn sẽ học cách cấu hình khởi động dịch vụ tự động với systemctl.

Systemd cung cấp một cách mạnh mẽ để quản lý khởi động dịch vụ và các dependency. Bạn có thể cấu hình dịch vụ để tự động khởi động khi hệ thống boot, hoặc khởi động và dừng dựa trên trạng thái của các dịch vụ khác.

Hãy bắt đầu bằng cách tạo một file unit dịch vụ đơn giản. Tạo một file mới tên là myservice.service trong thư mục ~/project:

sudo nano ~/project/myservice.service

Thêm nội dung sau vào file:

[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/bin/bash -c "while true; do echo 'Running my service'; sleep 10; done"
Restart=always

[Install]
WantedBy=multi-user.target

File unit dịch vụ này định nghĩa một dịch vụ đơn giản chạy một vòng lặp vô hạn, in ra một thông báo sau mỗi 10 giây. Dòng After=network.target đảm bảo rằng dịch vụ khởi động sau khi network khả dụng, và dòng Restart=always đảm bảo rằng dịch vụ tự động khởi động lại nếu nó dừng.

Bây giờ, hãy enable và start dịch vụ:

## Enable the myservice.service to start automatically on boot
sudo systemctl enable ~/project/myservice.service

## Start the myservice.service
sudo systemctl start myservice.service

Bạn có thể kiểm tra trạng thái của dịch vụ bằng lệnh systemctl status:

sudo systemctl status myservice.service

## Example output:
## ● myservice.service - My Custom Service
##      Loaded: loaded (/home/labex/project/myservice.service; enabled; vendor preset: enabled)
##      Active: active (running) since Fri 2023-04-28 12:34:56 UTC; 1 minutes ago
##    Main PID: 12345 (bash)
##       Tasks: 2 (limit: 4915)
##      Memory: 2.0M
##      CGroup: /system.slice/myservice.service
##              ├─12345 /bin/bash -c while true; do echo 'Running my service'; sleep 10; done
##              └─12346 sleep 10

Điều này cho thấy rằng myservice.service đang chạy và đã được enable để tự động khởi động khi hệ thống boot.

Bạn đã học cách cấu hình khởi động dịch vụ tự động với systemctl. Chúc mừng bạn đã hoàn thành lab này!

Kết luận cho linux systemctl command

```html

Vậy là chúng ta đã cùng nhau khám phá những điều cơ bản về systemctl, một công cụ quản lý dịch vụ mạnh mẽ trên Linux. Hy vọng qua bài viết này, bạn đã có cái nhìn tổng quan và tự tin hơn khi làm việc với nó. Đừng ngại thử nghiệm các linux systemctl command khác nhau để hiểu rõ hơn cách chúng hoạt động. Việc thực hành thường xuyên sẽ giúp bạn làm chủ công cụ này một cách nhanh chóng. Hãy nhớ rằng, systemctl là người bạn đồng hành không thể thiếu của bất kỳ người dùng Linux nào. Chúc bạn thành công trên con đường khám phá thế giới Linux đầy thú vị! Hãy tiếp tục tìm hiểu và áp dụng những kiến thức này vào thực tế nhé.

```
Last Updated : 17/10/2025