Khởi động lại dịch vụ bằng lệnh khởi động lại systemctl

Khoi Dong Lai Dich Vu Bang Lenh Khoi Dong Lai Systemctl



Các hệ thống là trình quản lý dịch vụ hệ thống được sử dụng rộng rãi trên Linux. Để quản lý hệ thống dịch vụ, các hệ thống tiện ích dòng lệnh được sử dụng. Công cụ này cũng được sử dụng để khởi động lại bất kỳ dịch vụ systemd nào.

Các dịch vụ trên Linux được quản lý thông qua file cấu hình của chúng. Nếu sửa đổi được thực hiện đối với tệp cấu hình của dịch vụ, thì cần phải bắt đầu khởi động lại dịch vụ để áp dụng các sửa đổi. Khi khởi động lại dịch vụ, systemd sẽ đánh giá lại tệp cấu hình và áp dụng các sửa đổi.

Trong hướng dẫn này, tôi sẽ hướng dẫn cách sử dụng systemctl để khởi động lại dịch vụ trong Linux.







Ghi chú: Hướng dẫn này bao gồm các lệnh và hướng dẫn được thực thi trên Ubuntu 22.04. Lệnh sẽ hoạt động mà không gặp bất kỳ sự cố nào đối với các bản phân phối đi kèm với trình quản lý dịch vụ systemd.



Lệnh khởi động lại systemctl

Các khởi động lại lệnh về cơ bản dừng một dịch vụ và khởi động lại nó. Nếu dịch vụ hoặc thiết bị không hoạt động, lệnh khởi động lại sẽ bắt đầu hoạt động.



Lệnh khởi động lại không loại bỏ các tiến trình được liên kết với dịch vụ. Lấy ví dụ về bộ mô tả tệp, là các mã định danh không âm được hệ điều hành gán cho các tệp được mở bởi một dịch vụ. Nếu bạn khởi động lại một dịch vụ, bộ mô tả tệp được liên kết với dịch vụ đó sẽ vẫn ở đó trong quá trình khởi động lại.





Nếu bạn muốn loại bỏ tất cả các quy trình được liên kết với dịch vụ, thì bạn cần phải rõ ràng dừng lại dịch vụ và bắt đầu nó một lần nữa.

Cách khởi động lại dịch vụ

Trên Linux, bạn có thể khởi động lại dịch vụ bằng cách sử dụng lệnh sudo systemctl công cụ dòng lệnh với khởi động lại tùy chọn và chỉ định tên của nó. Cú pháp chung được đưa ra dưới đây:



sudo khởi động lại hệ thống [ Tên dịch vụ ]

Bạn sẽ cần sudo đặc quyền để khởi động lại một dịch vụ.

Ví dụ: hãy khởi động lại ssh dịch vụ.

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

Để khởi động lại nhiều dịch vụ, hãy thêm từng tên dịch vụ sau tên khởi động lại lệnh có dấu cách.

sudo systemctl khởi động lại ssh.service smbd.service

Các lệnh khởi động lại khác được đưa ra trong bảng dưới đây:

thử khởi động lại Nó dừng hoặc khởi động dịch vụ hoặc các dịch vụ được chỉ định và nếu dịch vụ không chạy thì nó sẽ không khởi động nó
tải lại hoặc khởi động lại Tải lại dịch vụ hoặc các dịch vụ được hỗ trợ và nếu dịch vụ không được hỗ trợ thì hãy khởi động lại và kích hoạt nó
thử tải lại hoặc thử khởi động lại Tải lại dịch vụ hoặc các dịch vụ được hỗ trợ và nếu dịch vụ không được hỗ trợ thì khởi động lại mà không kích hoạt

Trong các lệnh trên, .dịch vụ phần mở rộng là tùy chọn.

Cách tự động khởi động lại dịch vụ

Trên Linux, nếu một dịch vụ bị lỗi thì hệ thống khởi động lại nó theo mặc định. Tuy nhiên, trong nhiều trường hợp, có thể cần phải sửa đổi cách khởi động lại dịch vụ. Ví dụ: người ta có thể cần thao tác thủ công trong quá trình gỡ lỗi của dịch vụ tùy chỉnh.

Các tệp đơn vị systemd hoặc tệp dịch vụ được đặt trên /etc/systemd/system hoặc /lib/systemd/system chủ yếu phụ thuộc vào cách dịch vụ được tạo ra. Để liệt kê các tệp đơn vị trên Linux, hãy sử dụng lệnh sau:

ls / lib / hệ thống / hệ thống

Bạn có thể xem các tập tin cấu hình của các dịch vụ khác nhau. Hãy mở ssh.service tập tin bằng cách sử dụng nano biên tập viên.

sudo nano / lib / hệ thống / hệ thống / ssh.service

Tại đây bạn có thể sửa đổi Khởi động lại cài đặt. Theo mặc định, nó được đặt thành đang thất bại . Các tùy chọn khác để khởi động lại dịch vụ được liệt kê bên dưới:

  • KHÔNG
  • luôn luôn
  • đang thành công
  • đang thất bại
  • bất thường
  • hủy bỏ
  • cơ quan giám sát

Một tùy chọn khác trong tệp dịch vụ đơn vị là Khởi động lại giây được sử dụng để chỉ định số giây sau đó dịch vụ sẽ khởi động lại.

[ Dịch vụ ]

Khởi động lại = luôn luôn

Khởi động lại giây = 5

Các hướng dẫn này có nghĩa là dịch vụ sẽ khởi động lại khi khởi động và nếu bị gián đoạn, dịch vụ sẽ được khởi động lại sau 5 giây.

Sau khi sửa đổi cài đặt, hãy thực hiện lệnh sau để áp dụng các thay đổi.

sudo systemctl tải lại-daemon

Các cài đặt quan trọng khác cần xem xét là Bắt đầuGiới hạnKhoảng thời gianSec Bắt đầuGiới hạnBurst . Các tùy chọn này rất hữu ích để đặt thời gian tối đa và số lần thử lại tối đa để khởi động lại dịch vụ.

[ Đơn vị ]

Bắt đầuGiới hạnKhoảng thời gianSec = 300

Bắt đầuGiới hạnBurst = 4

Hướng dẫn trên chỉ ra rằng systemd sẽ tự động ngừng cố gắng khởi động lại dịch vụ nếu nó không khởi động sau 300 giây và 4 lần thử lại.

Để xác minh xem dịch vụ có khởi động lại sau 5 giây hay không, hãy tắt dịch vụ bằng cách sử dụng PID của dịch vụ và giết yêu cầu.

sudo giết -9 [ PID ]

Sau 5 giây, dịch vụ sẽ được khởi động lại; sử dụng tạp chí lệnh kiểm tra trạng thái của ssh.service .

tạp chí -TRONG ssh.service

Cách khởi động lại dịch vụ khi dịch vụ phụ thuộc khởi động lại

Trên Linux, nhiều dịch vụ phụ thuộc lẫn nhau và tương tự, chúng bắt buộc phải được khởi động lại khi dịch vụ phụ thuộc được khởi động lại.

Có ba tùy chọn khác nhau trong tệp dịch vụ đơn vị để khởi động lại dịch vụ, với dịch vụ phụ thuộc được khởi động lại.

  • Một phần của
  • Liên kết với
  • Đòi hỏi

Tất cả các tùy chọn này thực hiện cùng một nhiệm vụ.

Hãy lấy một ví dụ về ssh.service phụ thuộc vào apparmor.service; Mô-đun bảo mật Linux để cung cấp quyền truy cập cần thiết. Để liệt kê các phụ thuộc của một dịch vụ trong Linux, hãy sử dụng hệ thống với phụ thuộc danh sách tên lệnh và dịch vụ.

danh sách phụ thuộc systemctl ssh.service

Vì vậy, nếu bạn muốn khởi động lại ssh.service khi khởi động lại apparmor.service thì bạn cần bao gồm tùy chọn PartOf, BindsTo hoặc Requires cùng với tên dịch vụ trong phần [Unit] của tệp apparmor.service.

Mở tệp apparmor.service.

sudo nano / lib / hệ thống / hệ thống / apparmor.service

Thêm dòng sau vào phần [Đơn vị].

Một phần của =ssh.service

Lưu tệp và thực hiện lệnh daemon-reload.

sudo tải lại daemon systemctl

Bây giờ hãy khởi động lại ssh.service và sau đó kiểm tra apparmor.service nhật ký.

Bạn sẽ nhận thấy apparmor.service được khởi động lại cùng lúc ssh.service được khởi động lại.

Phần kết luận

Để khởi động lại một dịch vụ hoặc các dịch vụ trên Linux, hệ thống lệnh được sử dụng với khởi động lại lựa chọn. Các hệ thống là một tiện ích dòng lệnh được sử dụng để quản lý các dịch vụ systemd. Các khởi động lại tùy chọn khởi động một dịch vụ rồi dừng dịch vụ đó, kích hoạt một dịch vụ không hoạt động. Tuy nhiên, bạn có thể khởi động lại dịch vụ mà không cần kích hoạt nó bằng cách sử dụng thử khởi động lại lựa chọn.