คุณต้องการให้การถ่ายโอนหนึ่งรายการเสร็จสิ้นขณะที่คุณเดินออกไป และการที่ Mac หลับคือผู้ต้องสงสัยที่ชัดเจน caffeinate สามารถถือการยืนยันพลังงานไว้ได้ตลอดช่วงเวลานั้น และเป็นเครื่องมือที่แคบกว่าที่เห็นในตอนแรก มันป้องกันการหลับเมื่อไม่มีการใช้งานขณะที่คำสั่งทำงาน มันไม่ได้รักษาเซสชัน VPN ให้มีชีวิต และจะไม่ช่วยให้การถ่ายโอนรอดพ้นจากข้อมูลรับรองที่หมดอายุตอนเที่ยงคืน การรู้ว่าขอบเขตของมันสิ้นสุดที่ใดคือสิ่งที่ป้องกันไม่ให้ความล้มเหลวครั้งถัดไปถูกกล่าวโทษผิดชั้น

การยืนยันถืออะไรไว้จริง ๆ

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

แฟล็กเลือกคำขอที่แตกต่างกัน -i ป้องกันการหลับของระบบเมื่อไม่มีการใช้งาน -d มุ่งเป้าที่การหลับของจอภาพ และ -s มุ่งเป้าที่การหลับของระบบในสถานการณ์ที่ระบบอนุญาต ไม่มีอันใดเป็นคำสัญญา «ตื่นอยู่เสมอ» แบบครอบคลุม และไม่มีอันใดปลดล็อกหน้าจอหรือเอาชนะการปิดฝาได้ เลือกอันที่ตรงกับสิ่งที่ขัดจังหวะที่คุณเห็นจริง ๆ

ความแตกต่างนั้นสำคัญเมื่อมีคนรายงานว่า Mac «ยังคงหลับ» คำถามคือมีการขอคำขอใด นานเท่าใด และเหตุการณ์ใดทำให้เกิดการหลับ ระบบจัดการพลังงานประเมินอินพุตหลายอย่าง และการยืนยันครอบคลุมเพียงหนึ่งในนั้น

ห่อหุ้มงานแทนการตกแต่งเซสชัน

caffeinate -i /usr/bin/ssh [email protected]

สิ่งนี้ถือคำขอป้องกันการหลับเมื่อไม่มีการใช้งานตราบเท่าที่ไคลเอนต์ SSH ทำงาน และนั่นคือจุดประสงค์ทั้งหมดของการห่อหุ้มแทนการส่งไปเบื้องหลัง โปรไฟล์ VPN ไม่ถูกแตะต้อง ไม่มีการส่ง keepalive และไม่มีสิ่งใดในคอนฟิกูเรชันของอุโมงค์เปลี่ยนไป

สำหรับช่วงเวลาที่จำกัด แฟล็กกำหนดระยะเวลาคือรูปแบบที่ซื่อตรง:

caffeinate -i -t 1800

หยุดการเรียกใช้นั้นด้วยการขัดจังหวะตามปกติเมื่องานเสร็จเร็วขึ้น อย่าทิ้งกองตัวห่อไว้เบื้องหลังแล้วมาทำความสะอาดทีหลังด้วยการฆ่าทุกกระบวนการที่ชื่อเดียวกัน คุณจะลบสิ่งที่คุณต้องการเก็บไว้

การหลับเป็นสาเหตุหนึ่ง ไม่ใช่สาเหตุ

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

การหลับของจอภาพและการล็อกหน้าจอก็แยกจากกัน Mac สามารถตื่นอยู่ได้โดยที่จอภาพปิด และสามารถล็อกได้ขณะที่งานดำเนินต่อไป หากข้อกำหนดคือหน้าจอที่สว่าง นั่นคือแฟล็กอื่น หากข้อกำหนดคือหน้าจอที่ปลดล็อก ไม่มีแฟล็กใดให้สิ่งนั้นได้ บอกว่าผลลัพธ์ใดในสามอย่างที่คุณต้องการจริง ๆ ก่อนเลือกสวิตช์ เพราะมันไม่ใช่พฤติกรรมเดียวภายใต้ชื่อที่ต่างกัน

เซสชัน VPN มีนาฬิกาของตัวเอง

อุโมงค์ IPsec หรือ TLS เปลี่ยนคีย์ตามกำหนดการที่ปลายทางทั้งสองตกลงกัน และเซิร์ฟเวอร์สามารถบังคับอายุเซสชันสูงสุดได้โดยไม่คำนึงถึงกิจกรรมของไคลเอนต์ ข้อมูลรับรองหมดอายุ ลิงก์การเข้าถึงอาจหลุดด้วยเหตุผลที่ไม่เกี่ยวกับการที่แล็ปท็อปตื่นอยู่ ไม่มีสิ่งใดในนี้สนใจการยืนยันพลังงาน

ดังนั้นเมื่อทราฟฟิกที่มีประโยชน์ล้มเหลวขณะที่ Mac ตื่นอยู่อย่างชัดเจน การเพิ่มระยะเวลาไม่ใช่คำอธิบายและไม่ใช่การซ่อมแซม อ่านความล้มเหลว: ข้อผิดพลาดในการเปลี่ยนคีย์ การหมดอายุของการรับรองความถูกต้อง และตัวพาที่หลุดไปดูแตกต่างกันในบันทึกของอุโมงค์ และแต่ละอย่างมีการแก้ไขของตัวเอง

วางความทนทานไว้บนโฮสต์ระยะไกล

หากการสูญเสียการเชื่อมต่อในเครื่องจะทำให้งานหลายชั่วโมงสูญเปล่า คำตอบอยู่ที่อีกฝั่ง ตัวคูณเทอร์มินัลรักษาเซสชันบนเซิร์ฟเวอร์ให้มีชีวิตเมื่อ SSH ตาย และระบบงานรักษางานให้มีชีวิตเมื่อเซสชันสิ้นสุด ทั้งสองไม่ขึ้นกับสถานะพลังงานของแล็ปท็อป

นั่นคือขอบเขตความล้มเหลวอีกแบบ และเป็นสิ่งที่สำคัญสำหรับงานยาว รวมทั้งสองอย่างเข้าด้วยกันเฉพาะเมื่อทั้งสองเป็นจริง เครื่องต้องตื่นอยู่สำหรับส่วนในเครื่องของงาน และส่วนระยะไกลต้องรอดพ้นจากการตัดการเชื่อมต่อ จากนั้นตรวจสอบโดยเชื่อมต่อใหม่จากเทอร์มินัลที่สองและตรวจสอบว่างานยังทำงานอยู่

จดบันทึกการยืนยันที่คุณใช้และเมื่อมันสิ้นสุด ทางเลือกในการปฏิบัติงานระยะสั้นเป็นเรื่องปกติ ส่วนทางเลือกถาวรที่ไม่ได้อธิบายจะกลายเป็นตั๋วสนับสนุนในอีกหกเดือนต่อมา เมื่อไม่มีใครจำได้ว่าทำไม Mac จึงไม่เคยหลับ

บทความที่เกี่ยวข้อง