Điểm:5

Cách đổi tên dịch vụ systemd mà không ảnh hưởng đến quá trình (không dừng/khởi động lại)

lá cờ eg

Có nhiều lý do để đổi tên dịch vụ systemd trong sản xuất. Ví dụ:

  • để phân biệt nó tốt hơn với một cái mới
  • bởi vì ông chủ của bạn đã ra lệnh cho nó
  • vì các tập lệnh kế thừa
  • ...

Giả sử một dịch vụ chung mới được tạo trong /etc/systemd/system/foo.service và kích hoạt và bắt đầu như sau: [1]

systemctl daemon-tải lại
kích hoạt systemctl --now foo

Sau đó, bạn có thể muốn đổi tên nó từ foo.service đến thanh.dịch vụ mà không ảnh hưởng đến quá trình liên quan theo bất kỳ cách nào.

Trong trường hợp bình thường, bạn chỉ có thể làm một cái gì đó như thế này:

mv foo.service bar.service
systemctl daemon-tải lại
systemctl vô hiệu hóa foo
thanh kích hoạt systemctl

Sau đó, bạn có được:

  • trạng thái systemctl foo: đang chạy không tìm thấy Vô hiệu hóa
  • thanh trạng thái systemctl: không chạy kích hoạt

Vì vậy, bạn có thể muốn khắc phục bằng:

systemctl dừng foo
thanh bắt đầu systemctl

Hoặc với một khởi động lại. Tuy nhiên, trong môi trường sản xuất, điều này không khả thi vì bạn không muốn dừng ứng dụng vì thay đổi đó. Ngoài ra, việc khởi động lại được lên lịch sau nhiều tháng hoặc nhiều năm. Đồng thời, sẽ rất rủi ro nếu duy trì một dịch vụ đã ngừng hoạt động trong một thời gian dài như quán ba không nên bắt đầu do nhầm lẫn trước khi dừng chạy không tìm thấy foo.

Nói ngắn gọn. Bạn sẽ sử dụng phương pháp nào để đổi tên dịch vụ systemd trong sản xuất?

Điều kiện lý tưởng là có hai dịch vụ tương thích ngược. Như vậy, dừng foo cũng dừng lại quán ba và ngược lại.


Điểm:7
lá cờ cn

Có thể có một số phương pháp tốt hơn mà tôi không biết, nhưng đây là một giải pháp thay thế chủ yếu giúp bạn có được những gì bạn cần cho đến khi bạn có cơ hội khởi động lại dịch vụ:

  1. Tạo một liên kết tượng trưng với tên mới mong muốn trỏ đến tệp dịch vụ hiện có (và systemctl daemon-tải lại).
    hệ thống coi các liên kết tượng trưng đến các đơn vị là bí danh thay vì các đơn vị riêng biệt, nghĩa là cả hai tên bây giờ sẽ đề cập đến cùng một đơn vị (cùng trạng thái, cùng mọi thứ).
  2. Lên kế hoạch thực sự thay thế dịch vụ trong thời gian bảo trì tiếp theo của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.