Làm thế nào để systemctl lịch trình tắt hệ thống?


12

Khi tôi gõ shutdown -h +30, Linux bằng cách nào đó lên lịch thay đổi runlevel trong vòng 30 phút. Trên Debian, /sbin/shutdownlà liên kết tượng trưng đến /bin/systemctl. Thử nghiệm của tôi chỉ ra rằng shutdownkhông không sử dụng không cron cũng không tính giờ systemd .

Làm thế nào để tắt hệ thống được thực hiện bởi systemd?

Câu trả lời:


11

Câu hỏi hay. Tôi đã thử những gì bây giờ tôi nhận ra rằng bạn đã cố gắng lên lịch tắt máy và truy vấn bộ định thời systemd!

Điều đó cho thấy việc tắt máy không nằm trong bộ định thời systemd, như bạn đã lưu ý. Vì vậy, một sự hỗ trợ nhanh chóng của nguồn systemctl cho chúng ta cuộc gọi này, như là một phần của halt_main():

r = sd_bus_call_method(
                       b,
                       "org.freedesktop.login1",
                       "/org/freedesktop/login1",
                       "org.freedesktop.login1.Manager",
                       "ScheduleShutdown",
                       &error,
                       NULL,
                       "st",
                       arg_action == ACTION_HALT     ? "halt" :
                       arg_action == ACTION_POWEROFF ? "poweroff" :
                       arg_action == ACTION_KEXEC    ? "kexec" :
                                                       "reboot",
                       arg_when);

( systemctl.c dòng 7387 )

Vì vậy, nó sẽ xuất hiện rằng tắt máy được xử lý bởi logind. Bạn có thể tiếp tục theo đuổi các chi tiết nếu bạn muốn xem login-dbus.c. Có các phương pháp để lập lịch, hủy bỏ, quản lý tắt máy. Nhưng để hiểu sâu hơn, bạn có thể cần biết nhiều hơn về logind / systemd hơn tôi.

Tóm lại, thông tin tắt máy được lưu trữ (ít nhất) trong một tệp lịch biểu tại /run/systemd/shutdown/scheduled, nội dung của tôi là một ví dụ là:

USEC=1435715559055789
WARN_WALL=1
MODE=poweroff

Chỉ thời gian (tính bằng micro giây, có lẽ); có cảnh báo thông qua không wall, và chế độ nào (cf restart, kexec, v.v.).

Hy vọng điều này chỉ cho bạn đi đúng hướng ít nhất!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.