Tệp dịch vụ Systemd

Tep Dich Vu Systemd



Trên Linux, đầu ra trạng thái systemctl hiển thị dịch vụ được tải thông qua một tệp được gọi là tệp dịch vụ. Những tập tin này có thể được truy cập trong /lib/systemd/system hoặc /etc/systemd/system thư mục.

Các tập tin dịch vụ có .dịch vụ phần mở rộng và chứa các hướng dẫn được yêu cầu bởi hệ thống để quản lý một dịch vụ.







Các hệ thống Hệ thống init quản lý việc khởi tạo hệ thống bằng cách sử dụng Đơn vị . Đơn vị là một đối tượng thực hiện một nhiệm vụ hoặc hành động, chẳng hạn như quản lý một dịch vụ, bao gồm việc kiểm soát và giám sát nó. Các đơn vị này về cơ bản là các tệp được gọi là tệp dịch vụ bao gồm các lệnh và phụ thuộc đơn vị. Những tệp này rất quan trọng để kiểm soát hiệu quả các quy trình nền và quản lý tài nguyên.



Trong hướng dẫn này, tôi sẽ khám phá tệp dịch vụ systemd, cấu trúc của nó và các lệnh chính kiểm soát dịch vụ.



Khi làm việc với systemd, các điều khoản tập tin dịch vụ systemd tập tin đơn vị systemd thường được sử dụng thay thế cho nhau vì về mặt kỹ thuật chúng đề cập đến cùng một thứ.





Tệp dịch vụ Systemd là gì

Trên Linux, systemd quản lý các dịch vụ bằng cách sử dụng các tệp dịch vụ chứa hướng dẫn cấu hình để systemd có thể hiểu và thực thi.

Để liệt kê các đơn vị, hãy sử dụng systemctl với –list-đơn vị yêu cầu.



hệ thống --list-đơn vị

Để đọc tệp dịch vụ của bất kỳ dịch vụ nào, hãy sử dụng con mèo lệnh với đường dẫn tập tin.

con mèo [ / đường dẫn tệp dịch vụ ]

Ví dụ: để xem tệp dịch vụ của ssh.service sử dụng lệnh đã cho.

con mèo / lib / hệ thống / hệ thống / ssh.service

Giải phẫu tệp dịch vụ Systemd

Nói chung, các tệp đơn vị dịch vụ systemd chứa ba phần.

  • Đơn vị
  • Dịch vụ
  • Cài đặt

Tệp đơn vị dành riêng cho dịch vụ sẽ có một phần cụ thể được gọi là Dịch vụ phần.

Lưu ý rằng dịch vụ chỉ là một loại đơn vị. Một đơn vị có thể có nhiều loại khác nhau như ổ cắm, thiết bị, giá treo, tự động đếm, trao đổi, mục tiêu, bộ đếm thời gian, lát cắt và phạm vi. Các phần này được đặt ở giữa phần Đơn vị và Cài đặt. Phần mở rộng tệp cũng sẽ được thay thế bằng loại đơn vị tương ứng, ví dụ: loại đơn vị ổ cắm sẽ có một .ổ cắm phần mở rộng tập tin.

Ghi chú: Trong hướng dẫn này, tôi sẽ tập trung vào loại đơn vị dịch vụ do quản trị viên và nhà phát triển sử dụng rộng rãi.

Những phần này được đặt trong dấu ngoặc vuông ([]). Mỗi phần chứa một tập lệnh có liên quan. Cấu trúc chung của một tệp dịch vụ được đưa ra dưới đây.

[ Đơn vị ]

Chỉ thị 1 =Hướng dẫn 1

Chỉ thị 2 =Hướng dẫn 2

[ Dịch vụ ]

Chỉ thị 1 =Hướng dẫn 1

Chỉ thị 2 =Hướng dẫn 2

[ Cài đặt ]

Chỉ thị 1 =Hướng dẫn 1

Chỉ thị 2 =Hướng dẫn 2

Thứ tự của các phần có thể được thay đổi; tuy nhiên, thứ tự nêu trên thường được tuân theo.

[Đơn vị] Phần

Phần đơn vị chứa mô tả về đơn vị và các phụ thuộc của đơn vị. Phần này, theo quy ước, được đặt ở đầu tệp dịch vụ. Các chỉ thị thường được sử dụng được liệt kê dưới đây:

chỉ thị Sự miêu tả
Sự miêu tả Lệnh này được sử dụng để đề cập đến tên của dịch vụ. Độ dài của mô tả không được vượt quá 80 ký tự.
Tài liệu Lệnh này chứa trang man hoặc URL của dịch vụ.
Đòi hỏi Lệnh này được sử dụng để đề cập đến sự phụ thuộc vào dịch vụ hiện tại. Nếu việc kích hoạt dịch vụ phụ thuộc này không được thực hiện thì dịch vụ hiện tại sẽ không được khởi tạo.
Muốn Lệnh này được sử dụng để đề cập đến sự phụ thuộc vào dịch vụ hiện tại. Tuy nhiên, dịch vụ phụ thuộc này không bắt buộc phải được kích hoạt để chạy dịch vụ hiện tại.
Trước Sau khi thiết bị hiện tại được kích hoạt, dịch vụ được đề cập trong chỉ thị này sẽ được bắt đầu.
Sau đó Trước khi thiết bị hiện tại được kích hoạt, dịch vụ được đề cập trong chỉ thị này sẽ được bắt đầu.
Liên kết với Lệnh này liên kết dịch vụ hiện tại với dịch vụ được đề cập. Nếu dịch vụ được liên kết khởi động lại thì các dịch vụ hiện tại cũng sẽ khởi động lại.

Ngoài những chỉ thị này, còn có hai chỉ thị nữa; Tình trạng Khẳng định. Nhiều dịch vụ yêu cầu các điều kiện hệ thống cụ thể để chạy thành công và các lệnh này được sử dụng để đề cập đến các điều kiện.

Phần [Cài đặt]

Phần này không bắt buộc và chỉ cần thiết khi một dịch vụ yêu cầu kích hoạt hoặc hủy kích hoạt khi khởi động. Hơn nữa, còn phải kể đến dịch vụ bí danh. Các chỉ thị thường được sử dụng cho phần Cài đặt được liệt kê bên dưới:

chỉ thị Sự miêu tả
Truy nã Bởi Lệnh này đặt cấp độ chạy * mục tiêu của dịch vụ. Nếu mục tiêu được đặt thành đa người dùng.target thì dịch vụ sẽ được kích hoạt ở cấp độ chạy này.
Bắt buộcBy Lệnh này tương tự như WantedBy, tuy nhiên, ngay cả khi không có sự phụ thuộc được đề cập trong lệnh, dịch vụ vẫn sẽ được kích hoạt.
Bí danh Lệnh này được sử dụng để kích hoạt dịch vụ với tên khác. Một liên kết tượng trưng được tạo với tên này khi dịch vụ được bật.

Hầu hết, đa người dùng.target Được sử dụng như Truy nã Bởi tham số. Nhưng multi-user.target là gì?

Multi-user.target thể hiện trạng thái hệ thống sẵn sàng chấp nhận các phiên nhiều người dùng phi đồ họa. Đó là trạng thái trước khi khởi chạy GUI.

Hệ thống có nhiều cấp độ chạy khác nhau, chúng ta cùng tìm hiểu chức năng của các cấp độ chạy này nhé.

Trong systemd, các dịch vụ được nhóm dựa trên mức độ chạy, được gọi là mục tiêu . Mỗi cấp độ chạy có một tệp với .mục tiêu phần mở rộng trong /etc/systemd/system danh mục. Một dịch vụ sẽ chạy dựa trên trạng thái của cấp độ chạy.

Cấp độ chạy Mục tiêu Tình trạng Các tập tin
0 tắt nguồn Tắt máy và tắt nguồn poweroff.target
1 giải thoát Bắt đầu vỏ cứu hộ cứu hộ.target
2,3,4 nhiều người dùng Khởi động shell không phải GUI cho nhiều người dùng đa người dùng.target
5 đồ họa Thiết lập shell GUI nhiều người dùng đồ họa.target
6 khởi động lại Tắt khởi động lại khởi động lại.target

Phần [Dịch vụ]

Phần này bao gồm các cài đặt cấu hình cho dịch vụ. Cấu hình chính của phần này là xác định loại và các lệnh sẽ được thực thi khi bắt đầu dịch vụ. Kiểu Thực thiBắt đầu là những chỉ thị chính được sử dụng để thiết lập một dịch vụ.

Các loại dịch vụ khác nhau được liệt kê trong bảng sau.

loại dịch vụ Sự miêu tả
đơn giản Đây là loại mặc định khi loại hoặc Busname không được đề cập và chỉ ExecStart được đề cập. Systemd thực thi quy trình chính trước và sau đó là các đơn vị tiếp theo.
rẽ nhánh Loại này được sử dụng để duy trì dịch vụ chạy ngay cả khi dịch vụ mẹ bị đóng. Nó phân nhánh một tiến trình con sau khi đóng tiến trình cha.
oneshot Systemd thực thi quy trình chính trước và khi quy trình chính thoát ra, các đơn vị tiếp theo sẽ bắt đầu.
dbus Dịch vụ với dbus được sử dụng để liên lạc với một tiến trình khác trên xe buýt. Nếu tên xe buýt được đề cập thì quy trình sẽ được kích hoạt sau khi có được tên xe buýt.
thông báo Dịch vụ sẽ thông báo khi bắt đầu quá trình. Systemd sẽ tiến tới các đơn vị theo dõi sau khi thông báo được đưa ra.
nhàn rỗi Nó giữ dịch vụ cho đến khi tất cả các công việc đang hoạt động được gửi đi; chủ yếu hữu ích để cải thiện đầu ra của bảng điều khiển.

Các chỉ thị thường được sử dụng trong phần Dịch vụ được đề cập dưới đây:

Chỉ thị Sự miêu tả
Thực thiBắt đầu Nó giữ đường dẫn đầy đủ của lệnh sẽ được thực thi để bắt đầu quá trình.
Thực thiBắt đầuPre Nó giữ các lệnh cần được thực thi trước khi quá trình chính bắt đầu.
Thực thiBắt đầuBài đăng Nó giữ các lệnh sẽ được thực thi sau khi quá trình chính bắt đầu.
Thực thiTải lại Nó giữ lệnh tải lại cấu hình dịch vụ.
Khởi động lại Để tự động khởi động lại dịch vụ trong các trường hợp như không thành công, đang thành công, bất thường, đang hủy bỏ và đang trong cơ quan giám sát.
Khởi động lạiGiây Để giữ số giây sau đó dịch vụ sẽ tự động khởi động lại.

Các Thực thiBắt đầu là một trong những chỉ thị quan trọng được sử dụng trong phần Dịch vụ. Nó chứa đường dẫn đầy đủ của tệp thực thi rằng dịch vụ sẽ thực thi khi gọi.

Phần kết luận

Tệp dịch vụ systemd là một tệp cấu hình được cấu trúc bằng các lệnh và lệnh để chúng có thể được quản lý bởi systemd. Các tệp này chứa các hướng dẫn cho biết cách quản lý dịch vụ bởi systemd. Trong hướng dẫn này, tôi đã trình bày cách truy cập tệp dịch vụ systemd, các phần của nó và chỉ thị quản lý dịch vụ. Để tìm hiểu thêm về hướng dẫn tệp dịch vụ, vui lòng đọc hướng dẫn tài liệu chính thức được tìm thấy đây .