Caffeinate เป็นคำสั่งลับสุดเท่ (และมีประโยชน์มาก) ที่ซ่อนอยู่ใน Terminal ของ macOS หน้าที่ของมันตรงตามชื่อเลยครับ คือการ “ป้อนคาเฟอีน” ให้ Mac ของคุณตื่นอยู่ตลอดเวลา ไม่ยอมให้เครื่องหลับ (Sleep) หน้าจอดับ หรือพักเครื่องในขณะที่คุณกำลังทำงานสำคัญอยู่
ถ้าคุณเคยเจอปัญหาปล่อยให้เครื่องโหลดไฟล์ใหญ่ ๆ ทิ้งไว้ หรือกำลังเรนเดอร์วิดีโอแล้วหันไปกินข้าว กลับมาอีกทีปรากฏว่า Mac หลับปุ๋ย งานหยุดชะงัก… คำสั่ง caffeinate คือฮีโร่ที่จะมาช่วยคุณ โดยไม่ต้องลงแอปเสริม (เช่น Amphetamine หรือ Caffeine) ให้หนักเครื่องเลยครับ
วิธีเปิดใช้งาน Caffeinate (ขั้นพื้นฐาน)
วิธีใช้คำสั่งนี้ง่ายมาก เพียงแค่เปิด Terminal ขึ้นมา (กด Command + Spacebar พิมพ์ Terminal แล้วกด Enter) จากนั้นเลือกใช้ตามสถานการณ์ได้เลยครับ
สั่งให้ Mac ตื่นไปเรื่อย ๆ ไม่มีกำหนด
พิมพ์คำสั่งด้านล่างนี้แล้วกด Entercaffeinate
- ผลลัพธ์: ตราบใดที่หน้าต่าง Terminal นี้ยังเปิดอยู่ Mac จะไม่มีวันหลับ
- วิธีพอก่อน: ถ้าอยากให้มันกลับไปหลับได้ตามปกติ ให้กดปุ่ม
Control + Cบนคีย์บอร์ดเพื่อหยุดคำสั่ง
เจาะลึก 7 Options (Flags) อาวุธลับของ Caffeinate
คำสั่ง caffeinate มี Options เสริมที่เราสามารถหยิบมาผสมผสานเพื่อให้ตรงกับความต้องการได้แบบละเอียดสุด ๆ ดังนี้ครับ
กลุ่มคำสั่งควบคุมฮาร์ดแวร์ (Assertions)
-d(Display): สั่งห้ามหน้าจอดับ (Prevent display sleep) เหมาะสำหรับตอนเปิดแดชบอร์ดทิ้งไว้ดูข้ามคืน-i(Idle): สั่งห้ามระบบเข้าสู่โหมดหลับเมื่อไม่มีการเคลื่อนไหว (Prevent system idle sleep) คือตัวเครื่องไม่หลับ แต่หน้าจอยังดับเพื่อเซฟไฟได้-m(Disk): สั่งห้ามฮาร์ดดิสก์หยุดทำงาน (Prevent disk idle sleep) เหมาะมากเวลา Copy ไฟล์ใหญ่ ๆ หรือดาวน์โหลดงาน-s(System Power): สั่งห้ามเครื่องหลับ เฉพาะตอนที่เสียบปลั๊ก (AC Power) อยู่เท่านั้น ถ้าถอดปลั๊กเมื่อไหร่คำสั่งนี้จะหมดฤทธิ์ทันทีเพื่อเซฟแบตเตอรี่
คำสั่งจำลองพฤติกรรมผู้ใช้ และจำกัดเวลา
-u (User Active): คำสั่งแกล้งทำเป็นว่า “ฉันยังนั่งอยู่หน้าจอตรงนี้ซินะ!”
- ความเจ๋งคือ: ถ้าหน้าจอคุณดับไปแล้ว การใช้
caffeinate -uจะเป็นการปลุกหน้าจอให้สว่างขึ้นมาทันที และห้ามมันดับ - ข้อควรระวัง: ถ้าไม่ใส่เวลาถอยหลังร่วมด้วย คำสั่งนี้จะมีฤทธิ์สั้น ๆ เพียง 5 วินาที แล้วก็ดับไปตามปกติ
-t (Timeout): หากคุณรู้ว่างานจะเสร็จในอีก 1 ชั่วโมง และไม่อยากเปิดทิ้งไว้ข้ามคืน ให้ใส่ฟังก์ชัน -t (Time) ตามด้วย จำนวนวินาที ครับ เช่นcaffeinate -t 3600
(3600 วินาที = 1 ชั่วโมงพอดี พอครบเวลาปุ๊บ คาเฟอีนหมดฤทธิ์ Mac ก็จะกลับไปโหมดประหยัดพลังงานตามปกติ)
คำสั่งผูกมัดกับแอปพลิเคชันอื่น
-w (Wait Process): สั่งให้ Mac ตื่นอยู่ตลอดเวลา ตราบใดที่แอปพลิเคชันหรือโปรเซสที่ระบุยังทำงานอยู่ โดยเราต้องใส่เลข PID (Process ID) ของแอปนั้น ๆ ต่อท้าย เช่นcaffeinate -w 1234
(เมื่อแอปเลข PID 1234 ปิดตัวลง คาเฟอีนจะถูกถอนทันที และ Mac จะยอมหลับได้ตามปกติ โดยคุณสามารถเช็กเลข PID ได้จากแอป Activity Monitor)
ตารางสรุป Options ทั้งหมดเพื่อความชัดเจน
| Option | หน้าที่หลัก | สถานการณ์ที่ควรใช้ |
-d | ห้ามหน้าจอดับ | เปิดดู Live สด, ดูหน้าจอ Monitor |
-i | ห้ามระบบหลักหลับ (แต่จอดับได้) | เปิดบอทเกม, รันโค้ดเบื้องหลัง |
-m | ห้ามฮาร์ดดิสก์หยุดทำงาน | คัดลอกไฟล์ขนาดใหญ่, ย้ายข้อมูล |
-s | ห้ามหลับเฉพาะตอนเสียบปลั๊ก | ป้องกันแบตหมดเกลี้ยงในกระเป๋าเป้ |
-u | ปลุกหน้าจอให้สว่าง + แกล้งทำว่าใช้งานอยู่ | สั่งงานจากระยะไกล (Remote) เพื่อเปิดจอ |
-t [วินาที] | ตั้งเวลาหมดฤทธิ์ | สั่งรันงานทิ้งไว้ก่อนออกไปข้างนอก |
-w [PID] | ผูกอายุการตื่นไว้กับโปรแกรมอื่น | สั่งให้เครื่องตื่นจนกว่าจะเรนเดอร์งานเสร็จ |
เทคนิคขั้นโปร: ผสมคำสั่งเพื่อผลลัพธ์ที่ดีที่สุด
คุณสามารถนำ Options เหล่านี้มารวมร่างกันได้ในคำสั่งเดียวครับ เช่น
อยากให้หน้าจอเปิดสว่าง และห้ามเครื่องหลับ เป็นเวลา 30 นาที
caffeinate -di -t 1800
อยากปลุกหน้าจอที่ดับอยู่ให้สว่างขึ้นมา และให้มันสว่างค้างไว้ 10 นาที
caffeinate -u -t 600
รันโปรแกรมไปพร้อมกับสั่งกินกาแฟไปในตัว
ถ้าคุณขี้เกียจหาเลข PID คุณสามารถสั่งรันโปรแกรมต่อท้าย caffeinate ตรง ๆ ได้เลย เช่น สั่งบีบอัดไฟล์และห้ามเครื่องหลับจนกว่าจะเสร็จcaffeinate -i zip -r backup.zip /Users/Documents
สรุป
คำสั่ง caffeinate เป็นเครื่องมือ Built-in ที่ทรงพลัง ปลอดภัย และมีติดมาให้ใน macOS ทุกเครื่องโดยไม่ต้องเสียเวลาไปดาวน์โหลดแอปพลิเคชันภายนอกให้หนักเครื่อง เหมาะอย่างยิ่งสำหรับสาย Dev, สายตัดต่อ หรือใครก็ตามที่อยากควบคุมพฤติกรรมการนอนของ Mac อย่างแม่นยำ ลองเอาไปปรับใช้ใน Workflow ของตัวเองดูนะครับ!
อ่านเพิ่มเติม