Thứ Sáu, 28 tháng 7, 2023

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.

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ố.

Mục lục

  • 1. Systemctl là gì?
  • 2. Liệt kê các service bằng systemctl
  • 3. Hiển thị trạng thái của service bằng systemctl
  • 3. Một vài cách sử dụng khác của lệnh systemctl trong Linux
  • 4. Ví dụ lệnh systemctl nâng cao trong Linux

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 và 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.

Bài viết này được đăng tại [tranvanbinh.vn]

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:

1
sudo systemctl list-units --type service

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

1
2
3
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.

1
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:

1
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:

1
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.

1
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à:

1
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:

1
systemctl is-active nginx

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

1
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ì?

1
systemctl --version

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

1
2
3
4
5
6
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?

1
ps -eaf | grep [s]ystemd

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

1
2
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.

1
systemctl list-units

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

1
systemctl list-unit-files

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

1
systemctl --failed

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

1
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

1
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.

1
2
3
4
5
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.

1
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.

1
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.

1
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.

1
2
3
4
5
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.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master