ฉันต้องการที่จะเข้าใจตัวจับเวลา systemd ดังนั้นฉันจึงเล่นซอ ฉันพบพฤติกรรมแปลก ๆ ซึ่งไม่ใช่สิ่งที่ฉันต้องการ เมื่อฉันเริ่มตัวจับเวลา systemd โดยใช้ WakeSystem=จริง
และ OnActiveวินาที
ตั้งเวลาแล้วหยุดชั่วคราว ตัวจับเวลารอตามระยะเวลานั้น สองครั้ง แทนครั้งเดียว
นี่คือตัวอย่างที่คุณสามารถลองด้วยตัวเอง:
วันที่ >> /home/user/Desktop/MyWakeLog.txt;sudo systemd-run --unit='WakeTimer' --on-active='5m' --timer-property='AccuracySec=1s' --timer-property ='WakeSystem=true' /bin/sh -c "date >> /home/user/Desktop/MyWakeLog.txt";sudo systemctl ระงับ
คุณคาดว่าไฟล์ MyWakeLog.txt
ที่จะเขียนถึงหนึ่งครั้ง จากนั้นตัวจับเวลาจะเริ่มต้น จากนั้นจะหยุดทำงานชั่วคราว จากนั้น 5 นาทีผ่านไป คอมพิวเตอร์จะตื่นขึ้นและ MyWakeLog.txt
ไฟล์ถูกเขียนอีกครั้ง
แต่นั่นไม่ใช่สิ่งที่เกิดขึ้น! ตัวจับเวลาจะปลุกคอมพิวเตอร์ให้หยุดทำงานหลังจากผ่านไป 5 นาที จากนั้นจึงรอ อื่น 5 นาทีในการเขียนบันทึก!
ทำไมสิ่งนี้ถึงเกิดขึ้น? ฉันจะทำให้คอมพิวเตอร์ของฉันตื่นขึ้นหลังจากเวลาที่กำหนด แล้วเขียนลงในบันทึกทันทีได้อย่างไร