Điểm:1

Cách gửi thông báo tắt máy đang chờ xử lý tới các dịch vụ systemd

lá cờ za

Tôi đang sử dụng Fedora CoreOS có bật trình cập nhật tự động, điều này rất phù hợp với trường hợp sử dụng của tôi. Hiện tại, khi đăng nhập tương tác, hệ thống sẽ cảnh báo về việc tắt/khởi động lại sắp xảy ra thông qua bảng điều khiển, với các cơ chế tương tự được mô tả trong các câu trả lời như Gửi tin nhắn tắt máy cho tất cả khách hàng từ máy chủ

Tuy nhiên, người dùng "thực tế" của máy chủ này không phải là người dùng Linux có quyền truy cập SSH mà truy cập vào các máy chủ như IRC hoặc các dịch vụ khác. Tôi muốn "bắt" thông báo cảnh báo tắt máy và chuyển tiếp nó tới từng dịch vụ, s.t. họ có thể phát sóng nó.

Các dịch vụ được sắp xếp bằng cách sử dụng các thùng chứa podman/docker không có đặc quyền chạy qua systemd (podman-tạo-systemd) đơn vị người dùng.

Tôi có thể (ab) sử dụng ExecStopPre cài đặt trong đơn vị systemd thành luôn ngủ 5m trước khi tắt thiết bị. Tuy nhiên, đây không chính xác là những gì tôi muốn vì tôi muốn có thể khởi động lại/dừng dịch vụ ngay lập tức khi thực hiện thủ công bằng cách sử dụng systemctl --user dừng/khởi động lại.

Tôi hiện thấy hai đường dẫn có thể kích hoạt tính năng này:

  1. một số cách để các đơn vị nghe tin nhắn trên tường và chuyển tiếp chúng
  2. một số cách để xác định --ignore ExecStopPre trên bảng điều khiển.

Điều thứ hai có thể đạt được, mặc dù không thuận tiện, bằng cách sử dụng systemctl --user chỉnh sửa --runtime. Tuy nhiên, cách tiếp cận thứ hai có thời gian ngừng hoạt động (ab) khi sử dụng ExecStopPre trong khi nó có thể cần thiết cho các mục đích khác.

Tuy nhiên, tôi rất vui vì những ý tưởng về cách đạt được (1) hoặc làm cho (2) trở nên thú vị hơn một chút khi làm việc. Hoặc thậm chí các cách tiếp cận hoàn toàn khác nhau cho vấn đề.

lá cờ in
Có thể sử dụng `Sau=Final.target` như trong https://unix.stackexchange.com/a/479048? (Chỉ là một phỏng đoán hoang dã. Bản thân tôi đã không sử dụng nó)
ljrk avatar
lá cờ za
@ErikSjölund Cảm ơn, tôi không biết về cài đặt này - nhưng nếu hệ thống đã được kết nối lại dưới dạng r/o thì dịch vụ sẽ không thể lưu trữ trạng thái hiện tại vào đĩa nữa, tôi nghĩ vậy.

Đă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.