Cách tạo tệp dịch vụ trong Linux

Cach Tao Tep Dich Vu Trong Linux



Hệ thống init systemd hiện là một phần của hầu hết các bản phân phối Linux. Với tư cách là quản trị viên hoặc nhà phát triển, bạn tạo các dịch vụ mà systemd có thể quản lý. Ví dụ: nếu bạn muốn khởi chạy các dịch vụ khi khởi động hoặc muốn điều khiển chúng theo cách thủ công, thì việc này có thể được thực hiện thông qua tệp dịch vụ tùy chỉnh.

Trong hướng dẫn này, tôi sẽ hướng dẫn cách tạo tệp dịch vụ systemd trên Linux.







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

Trước khi đi xa hơn, hãy hiểu tệp dịch vụ systemd là gì và nó được tạo như thế nào trên Linux.



Tệp dịch vụ systemd chứa các hướng dẫn được đặt cho systemd để quản lý dịch vụ. Nó thường chứa ba phần:



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

Các Đơn vị Phần chứa thông tin cơ bản về dịch vụ như mô tả ngắn, trang tài liệu và đường dẫn đến phần phụ thuộc. Các Cài đặt phần này là tùy chọn, nhưng thông thường nó quản lý trạng thái hệ thống mà dịch vụ sẽ được kích hoạt.





Các Dịch vụ phần thường được kẹp giữa phần Đơn vị và Cài đặt. Nó chủ yếu chứa loại dịch vụ và đường dẫn của các tệp thực thi về cơ bản là các lệnh để thực thi khi gọi dịch vụ bằng systemd.

Đây là cấu trúc tệp dịch vụ điển hình trông như thế nào.



[ Đơn vị ]

Chỉ thị 1 = sự hướng dẫn

Chỉ thị 2 = sự hướng dẫn



[ Dịch vụ ]

Chỉ thị 1 = sự hướng dẫn

Chỉ thị 2 = sự hướng dẫn



[ Cài đặt ]

Chỉ thị 1 = sự hướng dẫn

Chỉ thị 2 = sự hướng dẫn

Ở đây, các lệnh là các tham số lấy đầu vào tương ứng của chúng. Ví dụ, Sự miêu tả lệnh lấy một chuỗi tên của dịch vụ. Một cách tương tự, Thực thiBắt đầu tính đến đường dẫn đầy đủ của tệp thực thi.

Một tập tin dịch vụ điển hình của ssh.service được đưa ra dưới đây.

Cách tạo tệp dịch vụ

Để tạo một dịch vụ systemd, cần phải hiểu các chỉ thị chính. Trong hướng dẫn này, tôi sẽ đề cập đến các chỉ thị cần thiết có thể giúp bạn tạo một tệp dịch vụ đầy đủ chức năng.

Tạo tệp dịch vụ bao gồm nhiều bước, hãy bắt đầu bằng việc tạo tệp tập lệnh.

Ghi chú: Để tiếp tục với phương pháp được đề cập bên dưới, bạn phải có quyền root.

1. Tạo tập lệnh

Bước đầu tiên liên quan đến việc tạo mã sẽ được thực thi khi dịch vụ bắt đầu hoạt động. Đối với hướng dẫn này, tôi đang tạo một tập lệnh bash sẽ lưu trữ thời gian hoạt động của hệ thống Linux và mức sử dụng bộ nhớ.

Hãy tạo một tập lệnh trong thư mục hiện tại với tên myscript.sh sử dụng trình soạn thảo nano.

sudo nano myscript.sh

Bây giờ, thêm đoạn script bên dưới vào tệp và lưu nó bằng cách nhấn ctrl+x và sau đó .

#!/bin/bash

tiếng vọng '>>Đây là thời gian hoạt động của hệ thống của bạn<<' > trang chủ / bản thân anh ấy / myfile.txt

thời gian hoạt động >> trang chủ / bản thân anh ấy / myfile.txt

tiếng vọng '>>Đây là mức sử dụng bộ nhớ của hệ thống của bạn<<' >> / trang chủ / bản thân anh ấy / myfile.txt

miễn phí -m >> trang chủ / bản thân anh ấy / myfile.txt

ngủ 60

Tập lệnh chứa một vài chuỗi tiếng vang và thời gian hoạt động miễn phí lệnh.

Các thời gian hoạt động lệnh trên Linux được sử dụng để in thời gian hệ thống đã chạy và số lượng người dùng được kết nối với tải hệ thống trung bình trong 1, 5 và 15 phút qua.

Các miễn phí lệnh được sử dụng để in mức sử dụng bộ nhớ của hệ thống, trong khi -m cờ được sử dụng để in kết quả đầu ra trong MB .

Để lưu thông tin vào tệp văn bản, chúng tôi sử dụng các toán tử đặc biệt gọi là toán tử chuyển hướng. Các > toán tử được sử dụng để chèn văn bản vào tệp văn bản được đề cập. Tuy nhiên, nếu tệp chưa tồn tại, nó sẽ được tạo. Trong khi >> toán tử được sử dụng để nối văn bản vào tệp. Các ngủ lệnh được sử dụng để duy trì hoạt động của dịch vụ trong thời gian tối thiểu là một phút.

Bây giờ, hãy làm cho tập lệnh có thể thực thi được bằng cách cấp các quyền cần thiết.

sudo chmod +x myscript.sh

Tập lệnh hiện có quyền thực thi, hãy chuyển sang phần tiếp theo.

Ghi chú: Để làm cho tệp dịch vụ không có lỗi, hãy sử dụng đường dẫn tuyệt đối của tệp trong tập lệnh bash.

2. Tạo tệp .service

Tiếp theo, tạo một tệp dịch vụ với .dịch vụ sự mở rộng. Tệp dịch vụ phải được tạo trong /etc/systemd/system danh mục. Đầu tiên, điều hướng đến thư mục này bằng cách sử dụng đĩa CD yêu cầu.

đĩa CD / vân vân / hệ thống / hệ thống

Tuy nhiên, bạn có thể tạo tệp dịch vụ trong bất kỳ thư mục nào và sau đó di chuyển tệp đó vào thư mục này.

Tôi đang tạo một tệp dịch vụ với myservice.service tên.

sudo nano myservice.service

Bây giờ, thêm các dòng sau vào tệp.

[ Đơn vị ]

Sự miêu tả =Dịch vụ của tôi

[ Dịch vụ ]

Kiểu = đơn giản

Thực thiBắt đầu = / thùng rác / đánh đập / trang chủ / bản thân anh ấy / script.sh

Khởi động lại = khi thất bại

[ Cài đặt ]

Truy nã Bởi =nhiều người dùng.target

Lưu ý rằng [Đơn vị], [Dịch vụ], [Cài đặt] trường hợp nhạy cảm . Tệp dịch vụ sẽ không hoạt động nếu bất kỳ tệp nào trong số chúng được đề cập không chính xác, chẳng hạn như [ĐƠN VỊ] hoặc [DỊCH VỤ].

Tên dịch vụ được chỉ định là Dịch vụ của tôi bên trong Sự miêu tả chỉ thị của [Đơn vị] phần.

Các Kiểu của dịch vụ là đơn giản bên trong [Dịch vụ] phần, đây là loại mặc định. Ngã ba , một Châu , thông báo , dbus và nhàn rỗi là một số loại khác.

Nếu bạn muốn làm cho dịch vụ dành riêng cho người dùng thì Người dùng lệnh cũng có thể được sử dụng với tên người dùng của người dùng. Sử dụng lệnh này sẽ làm cho quyền của người dùng dịch vụ phụ thuộc.

Trong khi Thực thiBắt đầu lệnh chứa đường dẫn đầy đủ của tệp thực thi. Trong ví dụ trên, tệp script myscript.sh được lưu trữ trong /nhà/sam/ danh mục. Trên thực tế, lệnh này quản lý những gì sẽ thực thi khi một dịch vụ được gọi bởi systemd. Nếu đường dẫn đầy đủ của lệnh không được chỉ định, nó sẽ tự động được giải quyết để sửa các đường dẫn tuyệt đối như /usr/local/bin , /usr/bin/, /thùng rác . Hoàn toàn có thể sử dụng tên thực thi miễn là chúng nằm trong thư mục lệnh tiêu chuẩn, tuy nhiên, hãy đề cập đến đường dẫn tuyệt đối nếu không. Lưu ý rằng Nhiều lệnh cũng có thể được phân tách bằng dấu chấm phẩy (;).

Các [Cài đặt] phần là tùy chọn; tuy nhiên, nó cho biết dịch vụ được kích hoạt như thế nào. Các Truy nã Bởi lệnh lấy các tệp mục tiêu ở cấp độ chạy làm tham số. Các tệp mục tiêu khác nhau cho biết các cấp độ chạy khác nhau của hệ thống, chẳng hạn như tắt nguồn , giải thoát , nhiều người dùng , đồ họa , Và khởi động lại .

Các đa người dùng.target có nghĩa là dịch vụ sẽ được kích hoạt khi hệ thống ở trạng thái cho phép các phiên không có đồ họa nhiều người dùng.

3. Kích hoạt dịch vụ

Để kích hoạt dịch vụ, trước tiên, hãy tải lại cấu hình systemd bằng cách sử dụng hệ thống tính thiết thực.

sudo tải lại daemon systemctl

Tiếp theo, kích hoạt lại dịch vụ bằng cách sử dụng hệ thống lệnh với cho phép .

sudo hệ thống cho phép myservice.service

Để xác minh, hãy kiểm tra trạng thái của dịch vụ bằng cách sử dụng trạng thái hệ thống yêu cầu.

Dịch vụ đang chạy thành công.

Bây giờ, hãy đọc tệp văn bản myfile.txt dịch vụ được tạo ra trong /trang chủ danh mục.

Cách tạo tệp dịch vụ Systemd cho người dùng thông thường

Quy trình tạo tệp dịch vụ cho người dùng bình thường tương tự như phương pháp tạo tệp dịch vụ của quản trị viên. Tuy nhiên, thư mục lưu file dịch vụ đối với người dùng thông thường lại khác. Người dùng bình thường phải đặt các tập tin dịch vụ của họ vào ~/.config/systemd/user . Thư mục này phải được tạo bằng cách sử dụng mkdir yêu cầu.

mkdir ~ / .config / hệ thống / người dùng

Để kích hoạt dịch vụ bởi người dùng bình thường -người dùng lệnh được chèn với hệ thống thay vì sudo .

hệ thống --người dùng tải lại daemon

hệ thống --người dùng cho phép TÊN DỊCH VỤ.service

hệ thống --người dùng trạng thái DỊCH VỤ-NAME.service

Các -người dùng tùy chọn được sử dụng để quản lý các tệp dịch vụ systemd của người dùng.

Cách xóa tệp dịch vụ

Để xóa tệp dịch vụ, trước tiên, dịch vụ cần phải dừng.

sudo systemctl dừng DỊCH VỤ-NAME.service

Kiểm tra trạng thái bằng cách sử dụng trạng thái hệ thống lệnh để biết dịch vụ có bị dừng hay không. Sau đó xóa tệp dịch vụ bằng cách sử dụng rm yêu cầu.

sudo rm / vân vân / hệ thống / hệ thống / TÊN DỊCH VỤ.service

Bây giờ hãy tải lại hệ thống cấu hình.

sudo tải lại daemon systemctl

Phần kết luận

Dịch vụ systemd tùy chỉnh có lợi trong nhiều tình huống khác nhau. Trong hướng dẫn này, chúng tôi đã tìm hiểu cách tạo tệp dịch vụ systemd tùy chỉnh cho quản trị viên hệ thống và cách người dùng bình thường có thể tạo tệp dịch vụ. Hơn nữa, chúng ta cũng thấy quy trình xóa tệp dịch vụ.