รีสตาร์ท cron หลังจากเปลี่ยนไฟล์ crontab หรือไม่


432

ฉันต้องรีสตาร์ท cron หลังจากเปลี่ยนไฟล์ crontable หรือไม่


8
เพื่อไม่สนใจคำตอบของ @ leonbloy แต่ฉันพบว่าการใช้งาน cron ครั้งแรกของ linux ของฉัน (การจัดรูปแบบที่ถูกต้องต่อนาทีงาน) ไม่ได้ดำเนินการจนกว่าระบบจะรีบูต sudo service cron restartไม่ได้ทดสอบ
geotheory

1
@geotheory yikes ฉันแน่ใจว่าฉันไม่จำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์ prod ของฉันทุกครั้งที่ฉันอัปเดต crontab (และฉันไม่ต้องการ)
jcollum

คำตอบ:


613

เลขที่

จากหน้าcron man :

... cron จะตรวจสอบเวลาการแก้ไขบน crontabs ทั้งหมดและโหลดสิ่งที่เปลี่ยนแปลงไป ดังนั้น cron ไม่จำเป็นต้องรีสตาร์ททุกครั้งที่มีการแก้ไขไฟล์ crontab

แต่ถ้าคุณต้องการให้แน่ใจว่ามันทำอยู่แล้ว

sudo service cron reload

หรือ

/etc/init.d/cron reload

10
หากใช้โฟลเดอร์ cron.d crontabs ที่เชื่อมโยงกันจะไม่ถูกโหลดใหม่ ฉันจะบังคับให้โหลดซ้ำได้อย่างไร
CMCDragonkai

13
อามันง่ายมาก sudo service cron restartก็ตอนนี้
CMCDragonkai

21
ตัวเลือกที่ดีกว่าคือการรีโหลด - มันสามารถเริ่มต้นโดยผู้ใช้ที่ไม่ใช่รูท:/etc/init.d/cron reload
Honza

8
@CMCDragonkai อาจแทนcrond cron
Cees Timmerman

32
ปัญหาเดียวของคำตอบนี้คือมันไม่ได้เป็นจริงเสมอไป ดูความคิดเห็นของ geotheory ใต้คำถาม ฉันก็เช่นกัน ฉันทำการเปลี่ยนแปลงไปยังไฟล์ crontab ผ่านsudo crontab -eบันทึกการเปลี่ยนแปลงโดยCtrl + Xและออกไปโดยสมมติว่าcronจะหยิบมันขึ้นมา (เนื่องจากคำตอบนี้ถูกยกระดับขึ้นอย่างมาก) จากนั้นไม่กี่วันต่อมาลูกค้าของฉันรายงานว่า cron ยังคงทำงานในรอบเก่า ดังนั้น - โดยสุจริต - ถ้าคุณต้องการที่จะปลอดภัย - เพียงแค่รีสตาร์ทระบบcronหรืออย่างใดอย่างหนึ่งและไม่เล่นรอบกับการทดสอบเวลาที่สูญเปล่าซึ่งคุณจะต้องทำแม้จะมีคำตอบสูง upvoted นี้
Dan Nissenbaum

52

CentOS ที่ cPanel sudo /etc/init.d/crond reloadทำตามลวงนั้น

ใน CentOS7: sudo systemctl start crond.service


3
ขอบคุณสำหรับ CentOs 7 บรรทัด
Mathieu de Lorimier

1
//, เพื่อรีโหลดcrond, แทนที่จะเริ่มบน systemd ที่น่ากลัวยิ่งขึ้น, รันsudo systemctl reload crond.service.
Nathan Basanese

@NathanBasanese การรีโหลดcronบน SystemD ตอนนี้ถือว่าเป็นมนต์ดำ: sudo systemctl reload crondล้มเหลวด้วยFailed to reload cron.service: Job type reload is not applicable for unit cron.service.(Ubuntu 18.04) อ่าน: หัวออกเราทุกคนต่างก็เป็นโรค: "SystemD มีได้เพียงคนเดียว" หากการโหลดซ้ำไม่ได้ดำเนินการโดยอัตโนมัติหลังฉากแสดงว่าคุณกำลังอกหัก! อย่าคิดแม้แต่จะแก้ไขมันเหมือนอย่างที่คุณเคยทำในช่วง 3 ทศวรรษที่ผ่านมา (หรือมากกว่านั้น)! อ่าน: ในที่สุดโลกของ Windows ก็กลืนเดเบียน: หากมีสิ่งแปลก ๆ อยู่ใต้กระโปรงหน้าคุณจะทำอะไร? เริ่มต้นใหม่!
Tino

รีสตาร์ทเป็นมากกว่าการโหลดซ้ำ ไม่มีตัวเลือกรีโหลดใหม่ทั้งหมดสำหรับ Centos หรือไม่
Ωmega

@Tino คุณสามารถติดตั้ง cronie
Bob

27

ฉันมีปัญหาคล้ายกันใน 16.04 VPS Digital Ocean หากคุณกำลังเปลี่ยน crontabs ตรวจสอบให้แน่ใจว่าได้รัน

sudo service cron restart 

มันใช้งานได้สำหรับฉัน ขอบคุณ
Tien Nguyen

ฉันเห็นเท่านั้นreloadก็พอ restartไม่จำเป็นต้อง ขอบคุณ :)
Tien Nguyen

12

ขึ้นอยู่กับการกระจายการใช้ "cron reload" อาจไม่ทำอะไรเลย ในการวางตัวอย่างข้อมูลจาก init.d / cron (debian squeeze):

reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "cron"
    # cron reloads automatically
    log_end_msg 0
    ;;

นักพัฒนา / ผู้ดูแลรักษาบางรายอาศัยการโหลดซ้ำ แต่ไม่ใช่และในกรณีนี้ไม่มีวิธีบังคับให้โหลดซ้ำ ฉันกำลังสร้างไฟล์ crontab ของฉันเป็นส่วนหนึ่งของการปรับใช้และหากไม่มีการเปลี่ยนแปลงความยาวของไฟล์การเปลี่ยนแปลงจะไม่ถูกโหลดใหม่



6

ลองดูสิ: sudo cron reload มันใช้ได้กับฉันใน Ubuntu 12.10


ไม่ทำงานบน Raspberry Pi ของฉัน 3+ กับอูบุนตู 18.04.2 LTS
ม.ค.

3

ลองนี้service crond restart, ดังนั้นมันเป็นไม่ได้crondcron


crondบริการที่ไม่รู้จัก มันทำงานร่วมกับcronฉัน ระบบปฏิบัติการของฉันคือ Ubuntu 18.04
Tien Nguyen

1

มีอินสแตนซ์ที่ cron จำเป็นต้องเริ่มต้นใหม่เพื่อให้สคริปต์เริ่มทำงาน ไม่มีอะไรผิดปกติในการรีสตาร์ท cron

sudo บริการ cron เริ่มใหม่


0

1) หากไฟล์/var/spool/cron/crontabs/rootแก้ไขผ่าน SFTP ลูกค้า - service cron restartไม่จำเป็นต้อง บริการโหลดซ้ำไม่ทำงาน

2) หากแก้ไขไฟล์/var/spool/cron/crontabs/rootผ่านทางคอนโซล linux (nano, mc) - ไม่จำเป็นต้องรีสตาร์ท

3) ถ้าแก้ไข cron ผ่านcrontab -e- รีสตาร์ทไม่จำเป็น


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