วิธีป้องกัน atd ไม่ให้ทำงานในอดีต?


9

At daemon เป็นเครื่องมือที่ยอดเยี่ยม! อย่างไรก็ตามหากมีการกำหนดเวลางานไว้เป็นเวลา 8:00 น. และเครื่องจะปิดในเวลานั้นเวลาที่จะทำงานนั้นเมื่อใดก็ตามที่เครื่องถูกบู๊ต สิ่งที่ฉันต้องการจะทำคือหยุดทำงานไม่ได้หากเวลาผ่านไป ฉันค้นหาหน้าคนและออนไลน์ แต่อาจไม่มีคำตอบหรือไม่พบหน้าใดหน้าหนึ่ง ฉันใช้ Arch แต่เท่าที่ฉันรู้นั้นคล้ายกันมากกับการแจกแจง

ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!

คำตอบ:


7

เมื่อไหร่งานจะกลายเป็นงานที่ผ่านมา? หากคุณเปิดระบบที่ 7:59:50 และatdaemon เริ่มต้นที่8:00:01จะต้องดำเนินการงานหรือไม่ จะเกิดอะไรขึ้นถ้า daemon เริ่มต้นที่ 7:59:59 แต่ใช้เวลาสองวินาทีในการอ่านไฟล์ทั้งหมด

คุณตัดสินใจ! เริ่มงานของคุณด้วยการตรวจสอบเวลาและยกเลิกหากเวลาผ่านไป

export execute_by_date=$(date +%s 'tomorrow 8:01')
at tomorrow 8:00
[ "$(date +%s)" -le "$execute_by_date" ] || exit
do_stuff
␄

2

คุณสามารถเขียนสคริปต์เริ่มต้นซึ่งยกเลิก sheduled at-jobs ทั้งหมดเมื่อปิดหรือรีบูต

ฉันไม่แน่ใจเกี่ยวกับ Arch-Linux - มี/etc/sysconfig/atหรือคล้ายกัน? บางทีมันเป็นเพียง config-switch ที่คุณต้องพลิก ...


ฉันคิดว่านี่เป็นทางออกที่ดีที่สุดล้างatคิวเมื่อบู๊ตก่อนatเริ่มทำงาน
bahamat

นี่คือสิ่งที่ฉันคาดหวังว่า / ควรจะเป็นไปได้! น่าเสียดายที่ไม่มีได/etc/sysconfig/เร็กตอรี่ทั้งหมดใน Arch ... และไม่มีไฟล์ใดที่แสดงอยู่ใน man page เป็นไฟล์กำหนดค่า
Elmer

@ Elmer ฉันเพิ่ง Googled เล็กน้อยและอ่านเกี่ยวกับ arch linux '/etc/rc.d/atd' ดูเหมือนจะเป็นสคริปต์เริ่มต้นสำหรับ at-daemon ที่นั่น ดูที่นั่นถ้าคุณเห็นมันแจงไฟล์กำหนดค่าบางไฟล์ หากคุณไม่โชคดีคุณต้องไปเริ่มต้นสคริปต์ของคุณเอง (เช่นตั้งชื่อatclearและเรียกใช้ก่อนatd)
นิลส์

2

คะแนนของฉันคือcrondaemon

หากคุณต้องการเรียกใช้ในเวลาที่กำหนดของวัน แต่ไม่ใช่ในเวลาเดียวกันในแต่ละวันฉันจะสร้าง crontab ที่มีหนึ่งรายการต่อช่วงต่อวันโดยมีเวลาดำเนินการเฉพาะ:

ตัวอย่างบางส่วนนำมาจากcrontab(5):

# run five minutes after midnight, every day
5 0 * * *       command
# run at 2:15pm on the first of every month
15 14 1 * *     command
# run at 10 pm on weekdays
0 22 * * 1-5    command

0

สิ่งที่คุณต้องการคือ cron daemon มันทำสิ่งที่คุณต้องการ

ฟีดเครื่องมือค้นหาที่คุณชื่นชอบสำหรับcron daemonและคุณมีคู่มือและคำแนะนำมากมาย man cronและman crontabยังเป็นประโยชน์


ขอบคุณสำหรับความช่วยเหลือ แต่ cron ไม่ทำงานสำหรับปัญหาของฉัน ฉันต้องการสคริปต์ที่ทำงานตามเวลาที่ระบุในแต่ละวัน แต่ไม่ใช่ในเวลาเดียวกันในแต่ละวัน
Elmer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.