Làm cách nào để quản lý dịch vụ Systemd với Systemctl?

Trình quản lý dịch vụ và hệ thống mặc định cho hầu hết các bản phân phối Linux hiện nay là systemd.


Quá trình systemd thay thế init SysV. Nó chạy như là quá trình đầu tiên sau khi khởi động kernel và chịu trách nhiệm đưa máy chủ Linux lên trạng thái có thể sử dụng nó. Nó chịu trách nhiệm bắt đầu và quản lý các dịch vụ, gắn hệ thống tệp, quản lý phần cứng, tạo dấu nhắc đăng nhập và nhiều hơn nữa.

Một lợi ích quan trọng so với SysV là systemd khởi động càng nhiều dịch vụ càng tốt song song, do đó tăng tốc quá trình khởi động và giúp màn hình đăng nhập nhanh hơn.

Các đơn vị

Các mục được quản lý bởi systemd được gọi là các đơn vị. Các tập tin đơn vị được đặt trong / lib / systemd / system.

Đơn vị dịch vụ

Để quản lý dịch vụ, các đơn vị mục tiêu là các đơn vị dịch vụ, có các tệp đơn vị có hậu tố là .dịch vụ.

Quản lý dịch vụ systemd

Lệnh để quản lý các đơn vị systemd là systemctl.

Dịch vụ bắt đầu và dừng

Để bắt đầu dịch vụ systemd, sử dụng lệnh start systemctl:

$ sudo systemctl bắt đầu name.service

Bạn có thể để lại hậu tố .service. Ví dụ: để khởi động máy chủ apache trên Ubuntu:

$ sudo systemctl bắt đầu apache2

Để dừng dịch vụ đang chạy:

$ sudo systemctl dừng name.service

Vì vậy, để ngăn chặn máy chủ apache trên Ubuntu:

$ sudo systemctl dừng apache2

Khởi động lại và tải lại dịch vụ

Để khởi động lại một dịch vụ đang chạy, sử dụng lệnh restart:

$ sudo systemctl khởi động lại name.service

Và trong trường hợp chỉ cần tải lại tệp cấu hình

$ sudo systemctl tải lại name.service

Kích hoạt và vô hiệu hóa dịch vụ

Nếu bạn muốn một dịch vụ bắt đầu tự động khi khởi động hệ thống, hãy sử dụng lệnh enable:

$ sudo systemctl kích hoạt name.service

Để vô hiệu hóa một dịch vụ bắt đầu khi khởi động hệ thống:

$ sudo systemctl tắt name.service

Vô hiệu hóa không dừng dịch vụ đang chạy.

Xem trạng thái dịch vụ

Để xem thông tin về một dịch vụ:

$ sudo systemctl status status.service

Điều này sẽ cho bạn thấy trạng thái của dịch vụ và một vài dòng đầu tiên của tệp nhật ký. Vì vậy, trong khi dịch vụ đang chạy, đầu ra của

sudo systemctl status apache2

apache2.service – Máy chủ HTTP Apache
Đã tải: đã tải (/lib/systemd/system/apache2.service; enable; nhà cung cấp cài sẵn: đã bật)
Thả vào: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Hoạt động: hoạt động (đang chạy) kể từ Thứ ba 2020-05-19 22:11:36 UTC; 4 ngày trước
Quá trình: 116002 ExecReload = / usr / sbin / apachectl duyên dáng (code = exited, status = 0 / SUCCESS)
PID chính: 104165 (apache2)
Nhiệm vụ: 55 (giới hạn: 1024)
Cgroup: /system.slice/apache2.service
├─104165 / usr / sbin / apache2 -k bắt đầu
├─116006 / usr / sbin / apache2 -k bắt đầu
└─116007 / usr / sbin / apache2 -k bắt đầu

Ngày 19 tháng 5 22:11:36 ubfox18 systemd [1]: Bắt đầu Máy chủ HTTP Apache…
Ngày 19 tháng 5 22:11:36 ubfox18 systemd [1]: Bắt đầu Máy chủ HTTP Apache.
21 tháng 5 06:25:01 ubfox18 systemd [1]: Đang tải lại Máy chủ HTTP Apache.
21 tháng 5 06:25:01 ubfox18 systemd [1]: Đã tải lại Máy chủ HTTP Apache.
Ngày 22 tháng 5 06:25:01 ubfox18 systemd [1]: Đang tải lại Máy chủ HTTP Apache.

Để kiểm tra xem một dịch vụ có hoạt động không:

$ sudo systemctl đang hoạt động name.service

Vì vậy, trong khi dịch vụ apache2 đang chạy, đầu ra của lệnh systemctl is-active là:

$ sudo systemctl đang hoạt động apache2
hoạt động

Để kiểm tra nếu một dịch vụ được kích hoạt:

$ sudo systemctl được kích hoạt name.service.

Trạng thái hệ thống xem

Tất cả các lệnh bạn đã thấy cho đến nay được sử dụng để quản lý một dịch vụ. Khi bạn muốn có tổng quan về trạng thái hệ thống, hãy sử dụng nhóm lệnh sau:

Để xem tất cả các loại đơn vị

$ sudo systemctl -t giúp
Các loại đơn vị có sẵn:
dịch vụ
ổ cắm
Mục tiêu
thiết bị
gắn kết
tự động
trao đổi
hẹn giờ
con đường
lát
phạm vi

Để liệt kê tất cả các đơn vị đã cài đặt, sử dụng danh sách đơn vị tập tin

$ sudo systemctl list-unit-files
ĐƠN VỊ NHÀ NƯỚC
Proc-sys-fs-binfmt_misc.automount tĩnh
-.gắn kết tạo
boot-efi.mount được tạo
dev-hugepages.mount tĩnh
dev-mqueue.mount tĩnh
mnt.mount được tạo
Proc-sys-fs-binfmt_misc.mount tĩnh
sys-fs-fuse-links.mount tĩnh
sys-kernel-config.mount tĩnh
sys-kernel-debug.mount tĩnh
acpid.path đã bật
apport-autoreport.path được bật
systemd-ask-password-console.path tĩnh
systemd-ask-password-plymouth.path tĩnh
systemd-ask-password-wall.path tĩnh
phiên-161.scope thoáng qua
tài khoản-daemon.service được kích hoạt

Đầu ra chỉ có hai cột Tệp đơn vị và Trạng thái. Trạng thái thường sẽ được bật, tắt, tĩnh hoặc bị che.

  • Tĩnh: Điều này có nghĩa là thiết bị không thể được bật, thực hiện hành động một lần hoặc là phụ thuộc của đơn vị khác và không thể tự chạy.
  • Che mặt: Một đơn vị được liệt kê là mặt nạ có nghĩa là nó hoàn toàn không thể khởi động được, vì nó được liên kết với / dev / null. Điều này được gọi là mặt nạ đơn vị. Điều này ngăn dịch vụ được khởi động, thủ công hoặc tự động.

Liệt kê tất cả các dịch vụ đã cài đặt

Lệnh systemctl list-unit-files với bộ lọc dịch vụ -t hoặc HPtype chỉ hiển thị trạng thái của các dịch vụ đã cài đặt.

$ sudo systemctl list-unit-files -t dịch vụ

ĐƠN VỊ NHÀ NƯỚC
tài khoản-daemon.service được kích hoạt
acpid.service bị vô hiệu hóa
apache-htcacheclean.service bị vô hiệu hóa
[email được bảo vệ] tàn tật
apache2.service được kích hoạt
[email được bảo vệ] tàn tật
apparmor.service được kích hoạt
apport-autoreport.service tĩnh
[email được bảo vệ] tĩnh
apport.service được tạo
apt-Daily-nâng cấp. Dịch vụ tĩnh
apt-Daily.service tĩnh
atd.service được kích hoạt
[email được bảo vệ] kích hoạt
blk-ready.service kích hoạt
bootlogd.service bịt mặt
bootlogs.service bịt mặt

Để xem tất cả các đơn vị dịch vụ đang hoạt động, hãy sử dụng các đơn vị danh sách với bộ lọc dịch vụ -t

$ sudo systemctl list-units -t dịch vụ

ĐƠN VỊ HOẠT ĐỘNG SUB MÔ TẢ
Tài khoản-daemon.service được tải đang hoạt động Dịch vụ Tài khoản
apache2.service được tải hoạt động đang chạy Máy chủ HTTP Apache
apparmor.service đã tải hoạt động khởi tạo AppArmor
apport.service đã tải hoạt động LSB: tạo báo cáo sự cố tự động
atd.service đã tải hoạt động đang chạy Lập lịch thực hiện hoãn lại
blk-ready.service đã tải hoạt động đã thoát Hoạt động của các thiết bị khối
cloud-config.service đã tải hoạt động đã thoát Áp dụng các cài đặt được chỉ định trong cloud-con
cloud-Final.service đã tải hoạt động đã thoát Thực thi tập lệnh người dùng / tập tin cuối cùng trên đám mây
cloud-init-local.service đã tải hoạt động đã thoát Công việc khởi tạo đám mây ban đầu (kết nối trước mạng)
cloud-init.service đã tải hoạt động đã thoát Công việc khởi tạo đám mây ban đầu (dịch vụ siêu dữ liệu
console-setup.service đã tải hoạt động thoát Cài đặt phông chữ và sơ đồ bàn điều khiển
cron.service đã tải hoạt động đang chạy chương trình xử lý nền thông thường

Đầu ra có các cột sau:

  • ĐƠN VỊ: Tên đơn vị dịch vụ systemd
  • LOAD: Hiển thị xem định nghĩa đơn vị đã được đọc và tải đúng chưa
  • HOẠT ĐỘNG: Mô tả nếu thiết bị hoạt động.
  • Theo dõi: Trạng thái kích hoạt cấp thấp của thiết bị, cung cấp thông tin chi tiết hơn về thiết bị. Điều này sẽ thay đổi theo loại đơn vị.
  • SỰ MIÊU TẢ: Mô tả đơn vị dịch vụ.

Phần kết luận

Tôi hy vọng điều này cung cấp cho bạn một ý tưởng về việc sử dụng systemctl để quản lý các dịch vụ trên Linux. Nếu muốn tìm hiểu thêm, bạn có thể kiểm tra điều này Khóa học Linux Mastery.

THẺ

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map