งานตามกำหนดการที่รันโดยไม่มี VPN ดูปกติดี
สถานะบอกว่าสำเร็จและข้อมูลหายไป กำหนดเงื่อนไขการรันแต่ละครั้งด้วยการเชื่อมต่อที่แน่นอนและบันทึกการข้ามแยกต่างหากแทนที่จะเชื่อถือตารางเวลา
สถานะของงานบอกว่าสำเร็จ บันทึกแสดงการรันที่เสร็จสิ้น และข้อมูลล้าสมัยหรือหายไป การรวมกันนี้มักหมายความว่างานตามกำหนดการเริ่มต้นโดยไม่มีเส้นทางที่ต้องการ และมีบางอย่างด้านล่างกลืนความล้มเหลวไป ตารางเวลาที่ทำงานตรงเวลาไม่ได้บอกอะไรเลยว่าเครือข่ายพร้อมหรือไม่ ช่องว่างระหว่างข้อเท็จจริงสองข้อนี้คือที่ที่ความล้มเหลวนี้อาศัยอยู่
การรับเข้าอยู่ที่การรัน ไม่ใช่การมีอยู่ของไฟล์ cron
การรันสีเขียวไม่ใช่การทำงานที่เสร็จสมบูรณ์
ตัวจัดตารางบันทึกว่าโปรเซสเริ่มต้นและออกในภายหลัง มันไม่รู้เลยว่าโปรเซสนั้นไปถึงทรัพยากรที่มันมีอยู่เพื่ออะไร สคริปต์ที่ถือว่าการเชื่อมต่อล้มเหลวเป็นผลลัพธ์ว่าง หรือจับข้อผิดพลาดและออกด้วยศูนย์ จะดูแข็งแรงตลอดไป อาการไม่ใช่สถานะสีแดง แต่เป็นสถานะที่ดูสมเหตุสมผลซึ่งแนบมากับงานที่หายไป
ตั้งชื่อสิ่งที่การรันต้องการจริง ๆ ก่อนตัดสินใจว่าจะตรวจสอบอย่างไร การสำรองข้อมูลอาจต้องใช้ DNS ส่วนตัวและปลายทางที่ผ่านการรับรอง ไม่ใช่แค่โปรเซสอุโมงค์
ตรวจสอบการเชื่อมต่อ ไม่ใช่ชื่ออินเทอร์เฟซ
อินเทอร์เฟซชื่อ tun0 อาจมีอยู่โดยไม่มีเซสชันที่สำคัญ และการเชื่อมต่ออื่นอาจเป็นเจ้าของชื่อนั้น ตรวจสอบวัตถุเฉพาะที่งานพึ่งพา: ตัวตนโปรไฟล์หนึ่งรายการ อินสแตนซ์บริการหนึ่งรายการ หรือการดำเนินการเล็ก ๆ ที่ได้รับอนุมัติต่อทรัพยากร รักษาการตรวจสอบให้จำกัดเวลา และเก็บข้อมูลรับรองไว้นอกอาร์กิวเมนต์ของโปรเซสและบันทึกการวินิจฉัย
กำหนดผลลัพธ์เมื่อขาดการเชื่อมต่อด้วย การข้ามปกติ การลองใหม่ภายในหน้าต่างสั้น ๆ และกำหนดเวลาที่พลาดซึ่งผู้ปฏิบัติงานมองเห็นได้คือสามคำตอบที่แตกต่างกัน และตารางเวลาที่เกิดซ้ำไม่ได้เลือกจากสิ่งเหล่านี้
การข้ามและความล้มเหลวเป็นผลลัพธ์ที่ต่างกัน
[Service] Type=oneshot User=worker ExecCondition=/usr/local/libexec/check-office-path ExecStart=/usr/local/bin/private-task
ในการติดตั้ง systemd, ExecCondition= รันตัวตรวจสอบนั้นก่อนภาระงาน พฤติกรรมการออกมีความเฉพาะ: ศูนย์ดำเนินการต่อ รหัสตั้งแต่หนึ่งถึง 254 จะข้ามคำสั่งเริ่มที่เหลือโดยไม่ทำเครื่องหมายว่าหน่วยล้มเหลว และ 255 หรือการสิ้นสุดที่ผิดปกติทำให้ล้มเหลว สิ่งนี้ให้สัญญาณที่แตกต่างกันสามอย่าง ซึ่งมีประโยชน์เฉพาะเมื่อสัญญัติของตัวตรวจสอบถูกแมปเข้ากับสัญญาณเหล่านั้นอย่างตั้งใจ การตั้งค่าที่นิยามความสำเร็จใหม่สามารถเปลี่ยนภาพได้ ดังนั้นควรจัดทำเอกสารการแมป
การบันทึกการข้ามคือสิ่งที่ทำให้การออกแบบซื่อสัตย์ การรันที่ถูกข้ามและไม่ปรากฏที่ใดเลยแยกไม่ออกจากการรันที่สำเร็จ และการถือว่าข้อผิดพลาดของตัวตรวจสอบทุกครั้งเป็นการข้ามแบบเงียบ ๆ จะปกปิดการติดตั้งที่เสียหายไปตลอดกาล
ปกป้องการรันทั้งหมด ไม่ใช่แค่การเริ่มต้น
การตรวจสอบความพร้อมจะสังเกตโลกก่อนการเปิดตัว แต่ไม่ได้ตรวจทุกซ็อกเก็ตหลังจากนั้น เมื่อเส้นทางตรงไม่เป็นที่ยอมรับสำหรับงานนี้เลย ให้แนบนโยบายขาออกที่ได้รับอนุมัติซึ่งบังคับใช้อย่างต่อเนื่องและครอบคลุม DNS, IPv6 และการขนส่งของอุโมงค์เอง การสลับสถานะ IPv6 ทั่วโลกของโฮสต์ไม่ใช่สิ่งทดแทนนโยบายที่จำกัดเฉพาะงาน
ตัดสินใจว่าเหตุการณ์ใหม่สามารถทับซ้อนกับงานที่ยังทำงานอยู่ได้หรือไม่ เก็บกฎนั้นไว้กับเจ้าของภาระงาน และทำให้การลองใหม่ปลอดภัยสำหรับการดำเนินการข้อมูล การหยุดงานเมื่อขาดการเชื่อมต่อจำกัดงานโดยไม่รับประกันสิ่งใดเกี่ยวกับทราฟฟิกสำรอง
ยอมรับเวิร์กโฟลว์ในสามกรณี: เส้นทางพร้อม เส้นทางไม่พร้อมใช้งาน และการสูญเสียระหว่างการรัน สิ่งที่น้อยกว่านี้ทดสอบตารางเวลา ไม่ใช่งาน