นี่อาจเป็นหัวข้อที่สับสนเพราะมีการใช้งาน cron ที่แตกต่างกัน นอกจากนี้ยังมีข้อบกพร่องหลายอย่างที่ทำให้คุณสมบัตินี้เสียหายและมีบางกรณีการใช้งานที่ไม่สามารถใช้งานได้โดยเฉพาะถ้าคุณทำการปิดระบบ / บูตเทียบกับการรีบูต
เป็นโรคจิต
datapoint # 1
หนึ่งในข้อผิดพลาดดังกล่าวใน Debian ถูกปกคลุมที่นี่หัวข้อ: cron: งาน @reboot จะไม่ทำงาน ดูเหมือนว่ามันจะทำให้มันเป็นทางของ Ubuntu เช่นกันซึ่งฉันไม่สามารถยืนยันได้โดยตรง
datapoint # 2
หลักฐานของข้อผิดพลาดใน Ubuntu ดูเหมือนจะได้รับการยืนยันที่นี่ในคำถามและคำตอบ SO เรื่องนี้: @reboot cronjob ไม่ได้ทำงาน
สิ่งที่สกัดมา
ความคิดเห็น # 1: .... 3) crond เวอร์ชันของคุณอาจไม่รองรับ @reboot คุณใช้ crond ของ vix หรือไม่? ... แสดงผลลัพธ์ของผู้ใช้ crontab -l -u
ความคิดเห็น # 2: ... อาจเป็นความคิดที่ดีที่จะตั้งค่าเป็นสคริปต์เริ่มต้นแทนที่จะใช้ @reboot ของ cron รุ่นเฉพาะ
ความคิดเห็น # 3: ... @MarkRoberts ลบการรีบูตและแก้ไข 1 * * * * เป็น * / 1 * * * * * แก้ไขปัญหา! ฉันจะส่งตัวแทนแต้มมาร์คได้ที่ไหน ขอขอบคุณ!
คำตอบที่ได้รับการยอมรับใน Q&A นั้นก็มีความคิดเห็นนี้เช่นกัน:
ดูเหมือนว่าฉัน Lubuntu ไม่สนับสนุนไวยากรณ์ @Reboot Cron
หลักฐานเพิ่มเติม
datapoint # 3
ในฐานะที่เป็นหลักฐานเพิ่มเติมมีเธรดนี้ว่ามีคนพยายามทำสิ่งเดียวกันและรู้สึกผิดหวังที่ไม่ได้ผล มันชื่อ: กระทู้: Cron - งาน @reboot ไม่ทำงาน
สิ่งที่สกัดมา
Re: Cron - @reboot งานไม่ทำงาน
อ้างอิงโพสต้นฉบับโดย Ceallred ดูโพสต์นี่คือการฆ่าฉัน ... พยายามสคริปต์ wrapper การรันจะสร้างไฟล์บันทึกด้วยตนเอง ... กำลังรีบูตและงานไม่ทำงานหรือสร้างไฟล์บันทึก
Syslog แสดงให้เห็นว่า CRON ทำงาน ... แต่อีกครั้งไม่มีเอาต์พุตและกระบวนการไม่ทำงาน 15 Jul 20:07:45 RavenWing cron [1026]: (CRON) INFO (กำลังทำงาน @reboot jobs) Jul 15 20:07:45 RavenWing CRON [1053]: (ceallred) CMD (/ home / ceallred / สคริปต์ / run_spideroak sh> /home/ceallred/Scripts/SpiderOak.log 2> & 1 &)
ดูเหมือนว่า cron จะไม่ชอบคำสั่ง @reboot .... มีความคิดเห็นอื่นอีกไหม?
โอเค ... แก้ไขแล้วบางส่วน ฉันจะทำเครื่องหมายว่าแก้ไขแล้วและเริ่มหัวข้อใหม่ด้วยปัญหาใหม่ .....
ฉันคิดว่าคำตอบคือไดเรกทอรีบ้านที่เข้ารหัสของฉันไม่ได้ถูกเมาท์เมื่อ CRON พยายามเรียกใช้สคริปต์ (เก็บไว้ใน / home / ชื่อผู้ใช้ / สคริปต์) ย้ายไปที่ / usr / สคริปต์และงานรันตามที่คาดไว้
ดังนั้นตอนนี้มันดูเหมือนจะเป็นปัญหาของใยแมงมุม กระบวนการเริ่มต้น แต่เมื่อกระบวนการบูตเสร็จสิ้นกระบวนการก็จะหมดไป ฉันคาดเดาความผิดพลาดด้วยเหตุผลบางอย่าง .... กระทู้ใหม่ที่จะถามเกี่ยวกับเรื่องนี้
ขอบคุณสำหรับความช่วยเหลือ!
เมื่อผู้ใช้รายนี้พบปัญหาของเขาแล้วเขาสามารถ@reboot
ทำงานจากรายการ crontab ของผู้ใช้ได้
ฉันไม่แน่ใจว่า cron รุ่นใดที่ใช้กับ Ubuntu แต่ดูเหมือนจะบ่งบอกว่าผู้ใช้สามารถใช้งานได้@reboot
เช่นกันหรือข้อผิดพลาดได้รับการแก้ไข ณ จุดหนึ่งใน cron รุ่นถัดไป
datapoint # 4
ฉันทดสอบบน CentOS 6 ต่อไปนี้และใช้งานได้
ตัวอย่าง
$ crontab -l
@reboot echo "hi" > /home/sam/reboot.txt 2>&1
จากนั้นฉันจะรีบูทระบบ
$ sudo reboot
หลังจากรีบูท
$ cat reboot.txt
hi
ใช้สิ่งที่ได้
- ดูเหมือนว่าคุณสมบัตินี้จะรองรับทั้งระบบและรายการผู้ใช้ crontab
- คุณต้องตรวจสอบให้แน่ใจว่ารองรับ / ทำงานใน distro และ / หรือแพ็คเกจ cron ของคุณโดยเฉพาะ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการที่กลไกการทำงานจริงสำหรับ@reboot
ฉันได้เจอโพสต์บล็อกนี้ซึ่งกล่าวถึงอวัยวะภายใน มันชื่อ: @reboot - อธิบายมายากล
การดีบัก crond
คุณสามารถเพิ่มรายละเอียดของcrond
การเพิ่มต่อไปนี้ลงในไฟล์การกำหนดค่าบน RHEL / CentOS / Fedora
$ more crond
# Settings for the CRON daemon.
# CRONDARGS= : any extra command-line startup arguments for crond
CRONDARGS="-L 2"
ระดับที่ถูกต้องคือ 0, 1 หรือ 2 ในการย้อนกลับไฟล์นี้กลับไปเป็นระดับการบันทึกเริ่มต้นเพียงแค่ลบ"-L 2"
เมื่อคุณทำการดีบั๊กสถานการณ์แล้ว