Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Dùng lệnh Systemctl trong Linux để quản lý service

Trong bài này mình sẽ hướng dẫn cách sử dụng lệnh Systemctl trong linux để theo dõi các và quản lý các service.

Trong Linux, một service là một chương trình chạy ở chế độ nền background. Các dịch vụ có thể được khởi động theo yêu cầu của người dùng hoặc tại thời điểm khởi động.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nếu bạn đang sử dụng Linux để làm và phát triển các dự án thì sẽ cần chạy nhiều dịch vụ khác nhau như máy chủ web, ssh hoặc crontab. Bạn cần biết cách liệt kê các dịch vụ đang chạy hoặc kiểm tra trạng thái dịch vụ, giúp gỡ lỗi khi hệ thống có sự cố.

1. Systemctl là gì?

Systemctl là một tiện ích dòng lệnh, có nhiệm vụ điều khiển hệ thống systemd service manager. Systemd là một bộ công cụ để quản lý hệ thống Linux, nó được sử dụng để khởi động máy, quản lý dịch vụ, hệ thống file tự động, ghi sự kiện, thiết lập tên máy chủ và các tác vụ hệ thống khác. Systemd sử dụng các khái niệm unit, package, service, socket.

Systemctl được sử dụng để kiểm soát systemd và quản lý các dịch vụ. Nó là một phần của hệ sinh thái systemd và có sẵn theo mặc định trên tất cả các hệ thống.

Với Systemctl bạn có thể kiểm tra được trạng thái của các service, khởi động và tắt service, gỡ rối hệ thống khi xảy ra sự cố.

2. Liệt kê các service bằng systemctl

Để lấy danh sách tất cả các service đã load trong hệ thống Linux thì bạn chạy lệnh sau:

sudo systemctl list-units --type service

Kết quả trả về có dạng như sau:

UNIT          LOAD      ACTIVE SUB     DESCRIPTION                                                              
cron.service  loaded    active running Regular background program processing daemon 
...

Giải thích chi tiết từng cột tính từ trái qua phải như sau:

  • UNIT là tên của service (unit).
  • LOAD là tình trạng của service đã load vào bộ nhớ hay chưa.
  • ACTIVE là trạng thái kích hoạt service cấp cao, có các giá trị gồm: active, reloading, inactive, failed, activating, deactivating
  • SUB là trạng thái kích hoạt service cấp thấp, giá trị của nó tùy thuộc vào từng unit, chủ yếu là: states, dead, exited, failed, inactive, or running.
  • DESCRIPTION là phần mô tả ngắn gọn về service.

Theo mặc định thì lệnh trên chỉ liệt kê các unit đã load và đang active. Để xem thêm các unit đã load nhưng inactive thì hãy thêm tùy chọn --all.

sudo systemctl list-units --type service --all

Nếu bạn muốn xem tất cả các unit đã được cài đặt thì hãy sử dụng lệnh sau:

sudo systemctl list-unit-files

3. Hiển thị trạng thái của service bằng systemctl

Để kiểm tra trạng thái của một service thì hãy sử dụng lệnh systemctl status:

sudo systemctl status <service_name>.service

Trong đó service_name chính là tên của service mà bạn muốn kiểm tra.

Ví dụ dưới đây mình đang kiểm tra trạng thái của nginx service.

sudo systemctl status nginx.service

Bạn không nhất thiết phải thêm hậu tố .service. Với lệnh trên thì mình sẽ viết lại là:

systemctl status nginx

Kết quả trả về có dạng như sau:

load service JPG

Nếu bạn chỉ muốn kiểm tra service có active hay không thì hãy chạy lệnh sau:

systemctl is-active nginx

Kết quả trả về là:

active

3. Một vài cách sử dụng khác của lệnh systemctl trong Linux

Sau đây mình sẽ làm thêm một vài ví dụ nữa để giúp các bạn hiểu rõ hơn về lệnh này nhé.

VD1: Kiểm tra xem systemd đã được cài đặt trên hệ thống của bạn hay chưa và phiên bản của systemctl hiện tại là gì?

systemctl --version

VD2: Kiểm rta xem systemmd và systemctl được cài đặt ở đâu trên hệ thống?

whereis systemd 
systemd: /usr/lib/systemd /etc/systemd /usr/share/systemd /usr/share/man/man1/systemd.1.gz


whereis systemctl
systemctl: /usr/bin/systemctl /usr/share/man/man1/systemctl.1.gz

VD3: Kiểm tra xem systemd có đang chạy hay không?

ps -eaf | grep [s]ystemd

VD4: Kiểm tra quá trình khởi động systemd

systemd-analyze
Startup finished in 487ms (kernel) + 2.776s (initrd) + 20.229s (userspace) = 23.493s

VD5: Lấy danh sách tất cả unit đang chạy.

systemctl list-units

VD6: Lấy danh sách tất cả unit đang có sẵn.

systemctl list-unit-files

VD7: Lấy danh sách tất cả unit load thất bại.

systemctl --failed

VD8: Kiểm tra service cron có kích hoạt hay không?

systemctl is-enabled crond.service

VD9: Kiểm tra trạng thái của một service bất kì. Như trong ví dụ dưới đây là mình kiểm tra firewalld

systemctl status firewalld.service

4. Ví dụ lệnh systemctl nâng cao trong Linux

VD1: Để start, restart, stop, reload và kiểm tra trạng thái của một dịch vụ thì ta sử dụng các lệnh dưới đây.

systemctl start httpd.service
systemctl restart httpd.service
systemctl stop httpd.service
systemctl reload httpd.service
systemctl status httpd.service

Trong các lệnh trên mình sử dụng dịch vụ httpd để làm mẫu.

VD2: Để kill một service thì ta chạy lệnh sau.

systemctl kill httpd

Ngay lập tức service sẽ chết hoàn toàn nên không còn hoạt động trên hệ thống nữa.

VD3: Để xem thông tin cấu hình của một service thì ta dùng tùy chọn show.

systemctl show httpd

VD4: Để xem tất cả các phụ thuộc dependencies của một service thì ta dùng lệnh sau.

systemctl list-dependencies httpd.service

VD5: Cách khởi động lại, tạm dừng, tạm ngừng, ngủ đông hoặc đặt hệ thống ở chế độ hybrid-sleep thì ta dùng các lệnh sau.

systemctl reboot
systemctl halt
systemctl suspend
systemctl hibernate
systemctl hybrid-sleep

Như vậy là mình đã hướng dẫn xong cách sử dụng lệnh systemctl trong Linux. Đây là lệnh được sử dụng để quản lý service trên Linux nên được sử dụng rất thường xuyên trong quá trình quản trị hệ thống.

Cùng chuyên mục:

Cách dùng lệnh Users trong Linux để xem user đang online

Cách dùng lệnh Users trong Linux để xem user đang online

Nếu bạn đang là quản trị viên thì việc quản lý thông tin / xem…

Cách sử dụng lệnh Wall trong Linux

Cách sử dụng lệnh Wall trong Linux

Wall là một công cụ dòng lệnh giúp hiển thị thông báo đến tất cả…

Cách dùng lệnh Whereis trong Linux

Cách dùng lệnh Whereis trong Linux

Whereis là một tiện ích dòng lệnh command line, nó cho phép bạn tìm ..

Cách sử dụng lệnh Which trong Linux

Cách sử dụng lệnh Which trong Linux

Linux dùng lệnh which để xác định vị trí file thực thi của lệnh mà…

Cách sử dụng lệnh whoami trong Linux

Cách sử dụng lệnh whoami trong Linux

Giống như tên gọi của nó, lệnh whoami in tên người dùng đang chạy ...

Cách dùng lệnh zcat trong Linux

Cách dùng lệnh zcat trong Linux

Mặc dù tính năng nén file rất hữu ích vì nó giúp ta tiết kiệm…

Hiểu rõ hơn về chmod 777 trong Linux

Hiểu rõ hơn về chmod 777 trong Linux

Bạn đang xây dựng một website và sử dụng tính năng upload ...

Cách sử dụng lệnh tail trong Linux

Cách sử dụng lệnh tail trong Linux

Mặc định thì lệnh tail sẽ hiển thị 10 dòng cuối cùng của file, thông…

Cách sử dụng lệnh Head trong Linux

Cách sử dụng lệnh Head trong Linux

Trong quá trình quản trị dữ liệu trên Linux đôi khi bạn muốn xem nhanh…

Cách sử dụng lệnh Whatis trong Linux

Cách sử dụng lệnh Whatis trong Linux

Trong bài này chúng ta sẽ tìm hiểu lệnh whatis trong ...

Cách sử dụng lệnh kill trong Linux

Cách sử dụng lệnh kill trong Linux

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không…

Cách dùng lệnh who trong Linux

Cách dùng lệnh who trong Linux

Who là một công cụ dòng lệnh command-line, được ...

Cách dùng lệnh basename trong Linux

Cách dùng lệnh basename trong Linux

basename là một tiện ích dòng lệnh (command line) dùng để lấy ...

Cách sử dụng lệnh gzip trên Linux

Cách sử dụng lệnh gzip trên Linux

Gzip là một trong những thuật toán nén file phổ biến nhất, nó cho phép…

Cách dùng lệnh wait trong Linux

Cách dùng lệnh wait trong Linux

Wait là lệnh dùng để đợi một thời gian cho tới khi công việc nào…

Cách dùng lệnh ping trong Linux

Cách dùng lệnh ping trong Linux

Lệnh ping là một trong những công cụ được sử dụng nhiều nhất để khắc…

Cách dùng lệnh sleep trong Linux

Cách dùng lệnh sleep trong Linux

sleep là một tiện ích command line cho phép lập trình viên ..

Các ví dụ học Bash Script trong Linux cơ bản nhất

Các ví dụ học Bash Script trong Linux cơ bản nhất

Bash Script đuọc xem là mã code lập trình trên Linux ...

Vòng lặp until trong Shell Script

Vòng lặp until trong Shell Script

Vòng lặp while trong Shell Script

Vòng lặp while trong Shell Script

Trong Linux script, vòng lặp while được sử dụng trong ...

Top