ฉันมีงานที่ทำตลอดไปในขณะที่เริ่ม ดังนั้นฉันต้องการเริ่มเพียงครั้งเดียวหลังจากป้อนลงในไฟล์ "crontab -e" และบันทึก (หรือ) เมื่อใดก็ตามที่รีบูตเกิดขึ้น
ทำอย่างไรจึงจะได้สิ่งนี้?
ฉันมีงานที่ทำตลอดไปในขณะที่เริ่ม ดังนั้นฉันต้องการเริ่มเพียงครั้งเดียวหลังจากป้อนลงในไฟล์ "crontab -e" และบันทึก (หรือ) เมื่อใดก็ตามที่รีบูตเกิดขึ้น
ทำอย่างไรจึงจะได้สิ่งนี้?
คำตอบ:
หากคุณต้องการให้คำสั่งรันครั้งเดียวในภายหลังให้ใช้at
คำสั่ง
หากคุณต้องการให้คำสั่งรันครั้งเดียวเมื่อบูตระบบโซลูชันที่ถูกต้องก็คือใช้งาน:
@reboot
คำนำหน้าพิเศษ (ดู manpage)หลังเป็นตัวเลือกเดียวสำหรับผู้ใช้ที่ไม่ใช่รูท
at now
@reboot
ฉันมักจะลืมเกี่ยวกับ
คุณสามารถใช้ที่ (1) เพื่อทำงานในบางจุดในอนาคต อย่างไรก็ตามหากคุณต้องการรันบางอย่างในการบู๊ตและมันจะยังคงทำงานต่อไปได้ด้วยตัวเองบางทีคุณอาจต้องการรายการใน /etc/init.d/ ที่จะช่วยให้คุณเริ่มต้นเมื่อบูต
kill
(สมมติว่าคุณได้รับอนุญาตให้ทำเช่นนั้นซึ่งคุณทำเพื่อกระบวนการของคุณเอง) การสร้างสคริปต์เริ่มต้นนั้นง่ายมาก ดูใน/etc/init.d/
บทที่ไม่ยาวมากและคุณรุ่นหลังมันหรือ google making init scripts (your distribution)
หา
/etc/init.d/skeleton
ใน openSuSE) ที่คุณสามารถปรับให้เข้ากับการใช้งานของคุณ
งานที่รันเพียงครั้งเดียวและทำงานตลอดไปจนกระทั่งคุณบอกให้ตายจะเรียกว่า "daemon" โดยปกติจะเริ่มผ่านสคริปต์ init ใน /etc/init.d/
หากงานของคุณสิ้นสุดลงในบางจุดและถือได้ว่าเป็นงานที่ต้องทำครั้งเดียวคุณอาจต้องการดูคำสั่ง at เช่นถ้าฉันต้องการเรียกใช้คำสั่ง find เวลา 22.00 น. คืนนี้และจะทำแค่ครั้งเดียวเท่านั้น:
$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00
ดูที่คำสั่ง at