Thứ Sáu, 8 tháng 4, 2022

Hướng dẫn sử dụng lệnh systemctl trong Linux

Trong một vài năm gần đây, Linux và các distribution của nó dần chuyển đổi qua việc sử dụng systemd làm init system. Bài viết này sẽ giới thiệu về các command của systemd và tạo 1 service và run nó với systemctl.

Các câu lệnh cơ bản hay dùng

Systemd quản lý các Unit . Unit có 12 loại khác nhau, nhưng loại thường sử dụng phổ biến nhất là service.

Để quản ly service trong Linux, chúng ta sử dụng tool systemctl

Kiểm tra 1 service:

systemctl list-units |grep ssh
Kết quả: sshd.service                                                                                                     loaded active running   OpenSSH server daemon

Start service

$ sudo systemctl start sshdhoặc
$ sudo systemctl start sshd.service

Stop service

$ sudo systemctl stop sshd.service

Status service

$ sudo systemctl status sshd.service

Restart service

$ sudo systemctl restart sshd.service

Reload service

$ sudo systemctl reload sshd.service

Enable service

Mặc định thì các service trong linux không được tự động bật khi start hệ điều hành (OS). Để làm điều đó thì cần phải enable service

$ sudo systemctl enable sshd.service

Disable service lúc start OS

$ sudo systemctl disable sshd.service

Các câu lệnh khác 

Chúng ta có thể xem được thông tin của cá unit với systemctl

  • List các units files được systemd list là "active"
$ systemctl list-units

io

  • List các unit files được load vào memory nhưng hiện tại chưa active
$ systemctl list-units --all
  • List các unit files chưa load vào memory
$ systemctl list-unit-files

Để xem trạng thái của các service unit có thể sử dụng status option của systemctl

systemctl status sshd.service

Để xem tất cả các entry nhật kí của unit

$ journalctl -u sshd.service

Nếu chỉ muốn list những entries của phiên boot hiện tại, thêm option -b

$ journalctl -b -u sshd.service

Hiện tại chúng ta đã biết cách chỉnh state của unit bằng cách start hoặc stop service thông qua systemctl.

Unit file có chứa các parameter mà systemd sử dụng để quản lý và chạy unit.Để xem full thông tin của nó:

$ systemctl cat sshd.service

Để xem các các unit cần chạy khi khởi đọng nginx

$ systemctl list-dependencies sshd.service

show recursive

$ systemctl list-dependencies --all sshd.service

Cuối cùng, để xem các thông tin cụ thể low level của unit settings (giá trị của các parameter được quản lý bởi systemd)

$ systemctl show sshd.service

Chỉnh sửa service

Chúng ta có thể sửa unit file mà ko cần phải vào tận trong thư mục để tìm

Append thêm option vào unit file

$ sudo systemctl edit sshd.service

Sửa trực tiếp toàn bộ nội dung file

$ sudo systemctl edit --full sshd.service

Reload lại systemd sau khi sửa

$ sudo systemctl daemon-reload

Tạo 1 service của chúng ta để start khi bật OS 

Chúng ta sẽ thử tạo 1 custom service, run nó khi boot với systemd

File service sẽ run shell script sau

test_service.sh

DATE=`date '+%Y-%m-%d %H:%M:%S'`
echo "Example service started at ${DATE}" | systemd-cat -p info

while :
do
echo "Looping...";
sleep 30;
done

Copy file script vào thư mục bin

$ sudo cp test_service.sh /usr/bin/test_service.sh
$ sudo chmod +x /usr/bin/test_service.sh

Tạo unit file (để xem full các option có thể tham khảo https://www.freedesktop.org/software/systemd/man/systemd.service.html)

# vi /lib/systemd/system/myservice.service với nội dung:

[Unit]
Description=Example systemd service.

[Service]
Type=simple
ExecStart=/bin/bash /usr/bin/test_service.sh

[Install]
WantedBy=multi-user.target
  • Start & xem status
$ sudo systemctl start myservice
sudo systemctl status myservice
  
● myservice.service - Example systemd service.
   Loaded: loaded (/lib/systemd/system/myservice.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-05-01 18:17:14 UTC; 4s ago
 Main PID: 16266 (bash)
    Tasks: 2
   Memory: 748.0K
      CPU: 4ms
   CGroup: /system.slice/myservice.service
           ├─16266 /bin/bash /usr/bin/test_service.sh
           └─16270 sleep 30

May 01 18:17:14 localhost systemd[1]: Started Example systemd service..
May 01 18:17:14 localhost cat[16269]: Example service started at 2018-05-01 18:17:14
May 01 18:17:14 localhost bash[16266]: Looping...

  • Enable service khi boot
$ sudo systemctl enable myservice

https://www.linode.com/docs/guides/start-service-at-boot/

https://www.digitalocean.com/community/tutorials/systemd-essentials-working-with-services-units-and-the-journal

=============================
* 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: 0902912888
⚡️ Skype: tranbinh48ca
👨 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: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Đị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

=============================
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,khóa học pl/sql, 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 dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

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