Score:0

เหตุใด cronjob และ systemd จึงทำงานร่วมกันไม่ได้

ธง cn

ฉันต้องการต่ออายุใบรับรอง cerbot โดยอัตโนมัติ ฉันเจอไฟล์ที่สร้างอัตโนมัติต่อไปนี้ แต่มันบอกว่า:

cronjob นี้จะไม่ถูกดำเนินการหากคุณใช้ systemd เป็นของคุณ ระบบเริ่มต้น

ฉันใช้ systemd เพื่อเริ่มบริการอื่นโดยอัตโนมัติในกรณีที่ระบบขัดข้อง/รีสตาร์ท ดังนั้นฉันจึงถือว่าข้อความข้างต้นใช้กับฉัน

อะไรคือสาเหตุที่ cronjob จะไม่ทำงานเมื่อใช้ systemd เป็นระบบเริ่มต้น ไม่สามารถใช้ systemd และ cronjob ร่วมกันได้หรือไม่?

# /etc/cron.d/certbot: รายการ crontab สำหรับแพ็คเกจ certbot
#
# Upstream แนะนำให้พยายามต่ออายุวันละสองครั้ง
#
# ในที่สุด นี่จะเป็นโอกาสในการตรวจสอบใบรับรอง
# ยังไม่ได้ถูกเพิกถอน ฯลฯ การต่ออายุจะเกิดขึ้นก็ต่อเมื่อหมดอายุ
#ภายใน30วัน.
#
# โน๊ตสำคัญ! cronjob นี้จะไม่ถูกดำเนินการหากคุณเป็น
# ใช้ systemd เป็นระบบเริ่มต้นของคุณ หากคุณกำลังใช้งาน systemd
# ฟังก์ชัน cronjob.timer มีความสำคัญเหนือ cronjob นี้ สำหรับ
# รายละเอียดเพิ่มเติม ดูที่ systemd.timer manpage หรือใช้ systemctl แสดง
#certbot.timer.
SHELL=/ถัง/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * การทดสอบรูท -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q ต่ออายุ
hr flag
ดูเหมือนว่า *ออกแบบ* ไม่ให้ทำงานหาก systemd เป็นระบบเริ่มต้น (การทดสอบ `! -d /run/systemd/system` จะล้มเหลว) - น่าจะเป็นเพราะงาน cron ไม่จำเป็นในกรณีนั้น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา