Điểm:0

Dịch vụ systemd có thể tự cập nhật không?

lá cờ in

Này mọi người máy chủ không có lỗi,

Tôi muốn viết một dịch vụ systemd có thể tự cập nhật.

Cụ thể, cứ sau 5 phút, nó sẽ xem xét Amazon S3 để biết các phiên bản mới của tệp nhị phân và .dịch vụ các tập tin. Nếu chúng đã được cập nhật, nó sẽ tải xuống và thay thế chúng, sau đó tự khởi động lại.

Thật không may, tôi hiểu rằng systemd không cho phép sửa đổi các tệp đang sử dụng.

Có một số cách tiêu chuẩn để đạt được điều này?

Cảm ơn!

CHỈNH SỬA: Để làm rõ, tôi hỏi liệu có thể thực hiện việc này với một dịch vụ không.Tôi nhận ra rằng tôi có thể có một cặp dịch vụ cập nhật lẫn nhau, nhưng điều đó có vẻ không phù hợp.

4snok avatar
lá cờ es
tại sao bạn không muốn sử dụng systemd.times hoặc cron cho tác vụ này?
Điểm:1
lá cờ us

Cập nhật các tệp liên quan đến tệp systemd .service hoặc tệp thực thi chương trình cũng giống như cập nhật bất kỳ tệp nào khác.

Bạn thực sự nên làm điều này với quản lý cấu hình chẳng hạn như Ansible, nhưng để hoàn thành nó như quy trình làm việc chung của bạn có thể sử dụng tập lệnh bash/python thực hiện như sau:

  1. Lấy (các) tệp từ máy chủ web/s3/v.v.
    • Bạn có thể thực hiện kiểm tra nhanh md5sum để so sánh sự khác biệt. Hoặc so sánh ngày, siêu dữ liệu khác để xác định xem tệp là mới hay đã thay đổi
  2. Thay thế các tập tin khi cần thiết
    • bạn có thể cần phải dừng lại dịch vụ (dịch vụ <tên dịch vụ> dừng) trước nếu các tệp đang được sử dụng.
  3. Chạy systemctl daemon-tải lại để yêu cầu systemd "quét lại" các tệp dịch vụ để tìm bất kỳ thay đổi nào.
  4. Khởi động lại/bắt đầu dịch vụ được đề cập

Sau đó, bạn có thể tải tập lệnh đó lên trong cron hoặc dưới dạng bộ hẹn giờ systemd để chạy theo lịch trình.

lá cờ in
Cảm ơn, và tôi hiểu nó có nghĩa là câu trả lời là "không". Không, một dịch vụ không thể tự cập nhật - bạn cần sử dụng dịch vụ thứ hai để cập nhật dịch vụ đầu tiên.
Rino Bino avatar
lá cờ us
Chà, tôi nghĩ nó nghiêng nhiều hơn về "có - về mặt kỹ thuật là có thể". Nó phụ thuộc vào quá trình nào đang chạy dưới dạng dịch vụ. Nếu bạn đã chạy quy trình tập lệnh trên dưới dạng dịch vụ systemd, bạn có thể thực hiện được. Giống như một cơ chế tự cập nhật được ghi vào chính quy trình. Nó thậm chí có thể tự khởi động lại. Tùy thuộc vào trường hợp sử dụng nhưng hầu hết mọi thứ luôn có thể thực hiện được tùy thuộc vào mức độ sáng tạo 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.