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

มันยังทำงานบนกลไกที่ macOS มีให้คุณฟรี ๆ การรู้ว่าค่าตั้งค่าไหนตรงกับกลไกชิ้นไหนบอกคุณได้ว่าเมื่อไรที่ต้องใช้แอป เมื่อไรที่คำสั่ง Terminal คำสั่งเดียวพอ และทำไมสวิตช์กันหลับตัวปกติถึงยอมแพ้เมื่อคุณปิดฝา

คำตอบสั้น ๆ: Amphetamine คือแอปบน menu bar ฟรีของ William Gustafson ที่ทำให้ Mac ของคุณ — และจอของมันถ้าคุณต้องการ — ตื่นอยู่ตามสั่ง ตามตัวจับเวลา ระหว่างที่ไฟล์กำลังดาวน์โหลดหรือแอปกำลังรัน หรืออัตโนมัติผ่าน Trigger ที่ตั้งเป็นกฎ ติดตั้งได้จาก Mac App Store ต้องใช้ macOS 10.13 ขึ้นไป และเวอร์ชันปัจจุบันคือ 5.3.2 ออกเมื่อพฤศจิกายน 2023 สำหรับงานครั้งเดียว คำสั่ง caffeinate ในตัวทำงานหลักให้แล้ว Amphetamine คุ้มก็ตรง Trigger และโหมดปิดฝาของมัน

Amphetamine for Mac คืออะไร และใครดูแล

Amphetamine คือยูทิลิตี้บน Mac App Store ที่รันใน sandbox จากนักพัฒนาอิสระ William Gustafson หน้ารายการบน App Store (ตรวจเมื่อตุลาคม 2026) พูดเรื่องเงินตรง ๆ: ฟรี ไม่มีโฆษณา ไม่มีการซื้อในแอป ไม่มีขั้นเสียเงิน และไม่มีการติดตาม

มีสองอย่างที่หน้ารายการไม่ได้ยกขึ้นมาข้างหน้า

เวอร์ชันล่าสุดมาจากพฤศจิกายน 2023 API ค้นหาข้อมูล App Store ของ Apple รายงานเวอร์ชัน 5.3.2 ออกเมื่อ 10 พฤศจิกายน 2023 เวอร์ชันแรกออกเมื่อพฤศจิกายน 2014

บันทึกของ 5.3.2 แก้แครชบน Sonoma ตั้งแต่นั้น Apple ออก Sequoia, Tahoe และ macOS 27 แล้ว — ดูตัวเลือกเวอร์ชันในคู่มือผู้ใช้ Mac ของ Apple นั่นไม่ได้ทำให้แอปพัง แต่สิ่งที่ระบบเหล่านั้นเปลี่ยนไปยังไม่ถูกแก้ในเวอร์ชันใดเลย

ชื่อเกือบทำให้แอปถูกถอด ในธันวาคม 2020 Apple บอก Gustafson ว่าชื่อและไอคอนรูปเม็ดยา "ดูเหมือนส่งเสริมการใช้สารควบคุมในทางที่ไม่เหมาะสม" และกำหนดเส้นตาย 12 มกราคม 2021 ในวันที่ 2 มกราคม 2021 ตามคำบอกเล่าของเขา Apple ยอมรับว่าทั้งสองอย่างถูกใช้ "เชิงอุปมา" และ "ในความหมายทางการแพทย์" แอปได้ชื่อเดิมไว้

เซสชันและ Trigger: แอป Amphetamine ทำให้ Mac ของคุณตื่นอยู่อย่างไร

เซสชัน คือโหมดแมนนวล จาก menu bar คุณเริ่มเซสชันที่รันไปเรื่อย ๆ ไม่จำกัด ตามระยะเวลาที่กำหนด จนถึงเวลาที่นาฬิกาบอก ระหว่างที่ไฟล์ดาวน์โหลด หรือระหว่างที่แอปที่เลือกกำลังรัน ภายในเซสชันคุณตัดสินใจเองว่าจะยอมให้มีการหลับของจอ สกรีนเซฟเวอร์ การหลับเมื่อปิดจอในเครื่อง การขยับเคอร์เซอร์อัตโนมัติ และการล็อกจอหรือไม่ (หน้ารายการบน App Store)

Trigger เริ่มเซสชันเองเมื่อเงื่อนไขของมันครบ เกณฑ์บนหน้ารายการแบ่งได้ห้ากลุ่ม:

  • จอ: มีจอภายนอกต่ออยู่ หรือจอถูก mirror
  • อุปกรณ์: อุปกรณ์ USB หรือ Bluetooth ต่ออยู่ มีไดรฟ์หรือวอลุมเมาท์อยู่ มีหูฟังหรือเอาต์พุตเสียงอื่นกำลังใช้งาน
  • ไฟ: แบตเตอรี่กำลังชาร์จหรืออยู่เหนือเกณฑ์ที่กำหนด อะแดปเตอร์ไฟต่ออยู่หรือถูกถอด
  • เครือข่าย: IP address, เครือข่าย Wi-Fi หรือ DNS server ที่ระบุ หรือการเชื่อมต่อ VPN Cisco AnyConnect
  • แอปและโหลด: แอปกำลังรัน แอปกำลังรันและอยู่หน้าสุด การใช้ CPU เกินเกณฑ์ที่กำหนด Mac ไม่มีการใช้งานนานเกินเกณฑ์ที่กำหนด

นี่คือสิ่งที่ macOS เทียบไม่ติด ระบบอัตโนมัติ Shortcuts ที่เพิ่มใน macOS 26 ยิงที่จังหวะหนึ่ง — จอต่อเข้ามา Mac เข้าเครือข่าย Wi-Fi เสียบที่ชาร์จ เกณฑ์ของ Amphetamine เป็นเงื่อนไขแบบ "ระหว่างที่": เซสชันอยู่ตราบที่เงื่อนไขยังจริง

ประวัติเวอร์ชัน ยังพูดถึงเกณฑ์ Schedule และแก้บั๊กที่กันไม่ให้เพิ่มเกณฑ์มากกว่าหนึ่งอันลงใน Trigger เดียว

ข้อจำกัดของ sandbox หนึ่งข้อ: เกณฑ์แอปกำลังรันเห็นได้เท่าที่ sandbox ให้เห็น ตั้งแต่ 5.3 สคริปต์ Process Discovery ซึ่งติดตั้งจากปุ่ม (?) ในเมนู While App Is Running ทำให้ Amphetamine เห็นโปรเซสได้มากขึ้นบน Apple Silicon (release notes) ก่อน 5.3 เรื่องนั้นต้องใช้ตัวช่วยแยกคือ Amphetamine Enhancer

Amphetamine ใช้ตอนปิดฝาได้ไหม

ได้ — นั่นคือ Closed-Display Mode ตัวเลือกเซสชันที่บล็อกการหลับเมื่อจอในเครื่องถูกปิด บน Apple Silicon มีข้อแม้: ตาม release notes การเสียบหรือถอดไฟกลางเซสชันอาจทำให้มันพังได้ 5.3 เพิ่มสคริปต์แก้ที่ต้องใช้ Touch ID หรือรหัสผู้ดูแล 5.3.1 เอา prompt ออก ส่วนเสริมนั้นคือ Amphetamine Power Protect เผยแพร่แยกบน GitHub เพราะตามที่หน้าติดตั้งอธิบาย Apple ไม่ยอมให้ Amphetamine ติดตั้งมันโดยตรง

สิ่งที่ Power Protect ติดตั้งนั้นเป็นรูปธรรมกว่าชื่อ ไฟล์คอนฟิกในไฟล์ที่เผยแพร่ของนักพัฒนาคือกฎ sudoers ที่ให้บัญชีผู้ดูแลบัญชีใดก็ได้รันสองคำสั่งนี้โดยไม่ต้องใส่รหัส: pmset -a disablesleep 1 และคำสั่งย้อนกลับของมัน pmset -a disablesleep 0 คอมเมนต์ในสคริปต์บอกว่าการเปิด Power Protect หมายถึงการปิดการหลับขณะจอในเครื่องปิดอยู่

disablesleep ไม่อยู่ใน man page ของ pmset ของ Apple สถานะของมันแสดงเป็น SleepDisabled ใน pmset -g ผู้สร้างแอปปิดฝาที่แข่งกันสองราย Sleepless และ Clamshell บอกว่ามันทำให้ MacBook ที่ปิดฝาตื่นอยู่ได้แม้ใช้แบตเตอรี่ เอกสารของ Apple ไม่พูดถึงมัน

Amphetamine Enhancer ส่วนเสริมอีกตัวที่โผล่ในผลค้นหา นั้นเก่ากว่า ตาม README ของมัน มันเป็นตัวช่วยแบบ open source ที่ผ่าน notarized ซึ่งเพิ่มตัวกันพลาดตอนปิดจอ และให้ Trigger เห็นทุกโปรเซสที่รันอยู่ — สิ่งที่แอปใน sandbox ลิสต์เองไม่ได้ รีโพซิทอรีของมันอัปเดตล่าสุดเมื่อกรกฎาคม 2020 (GitHub)

บน Apple Silicon วันนี้ การมอนิเตอร์โปรเซสมีมาให้ในตัว และความน่าเชื่อถือตอนปิดฝาวิ่งผ่าน Power Protect

เส้นทางที่ Apple รองรับไม่ต้องใช้แอป MacBook ที่ปิดฝายังส่งภาพออกจอภายนอกต่อไปได้ตราบที่มัน "เสียบปลั๊กไฟและใช้คีย์บอร์ดกับเมาส์ภายนอก" (Apple Support) ผมเคยเขียนโหมด clamshell ของ MacBook สำหรับงานที่รันยาวไว้ในโพสต์ก่อน

คุณจำเป็นต้องใช้ Amphetamine เลยไหม

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

คุณต้องการ เครื่องมือง่ายที่สุด ฟีเจอร์ Amphetamine ที่ใกล้ที่สุด
ตื่นอยู่จนกว่าคำสั่งจะทำงานเสร็จ caffeinate -i ./long-job.sh While App Is Running
ตื่นอยู่จนกว่าโปรเซสที่รันอยู่จะออก caffeinate -i -w <pid> While App Is Running
ตื่นอยู่ตลอดสองชั่วโมงข้างหน้า caffeinate -i -t 7200 เซสชันแบบจับเวลา
ให้จอติดไว้สำหรับสไลด์หรือแดชบอร์ด caffeinate -d เซสชันที่ปิดการหลับของจอ
กันไดรฟ์ภายนอกไม่ให้ idle caffeinate -m Drive Alive
ห้ามหลับเมื่อไม่มีการใช้งานขณะเสียบปลั๊ก System Settings → Battery → Options → "Prevent automatic sleeping on power adapter when the display is off" —
ตื่นอยู่ระหว่างใช้เซสชัน SSH บ่อยครั้งไม่ต้องทำอะไร: เช็ค ttyskeepawake ใน pmset -g —
ตื่นอยู่เมื่ออยู่บนด็อก เครือข่าย Wi-Fi VPN หรือที่ชาร์จ Trigger ของ Amphetamine Trigger
ปิดฝาพร้อมจอภายนอก คีย์บอร์ด เมาส์ และไฟ ไม่ต้องทำอะไร — โหมดปิดจอของ Apple —
ปิดฝาโดยไม่มีจอภายนอก Closed-Display Mode ของ Amphetamine (บวก Power Protect บน Apple Silicon) หรือทำเองด้วย sudo pmset -a disablesleep 1 Closed-Display Mode

การดาวน์โหลดในเบราว์เซอร์เป็นเซสชันประเภทเดียวที่ไม่มีคำสั่งบรรทัดเดียวสวย ๆ เพราะไม่มีคำสั่งให้ห่อ

สองหมายเหตุเรื่องตาราง เส้นทาง Battery มาจากคู่มือการหลับและการปลุกของ Apple Mac ตั้งโต๊ะมีสวิตช์เดียวกันใต้ Energy และ ttyskeepawake หน่วงการหลับเมื่อไม่มีการใช้งานไว้ขณะที่เซสชันล็อกอินระยะไกลยังใช้งานอยู่ ตาม man page ของ pmset — มันคือ 1 บน MacBook macOS 26.7 ที่ผมเช็ค

แต่ละตัวเลือกยึดอะไรไว้ ในศัพท์ของ macOS เอง

Amphetamine เหมือน caffeinate ตรงที่ทำงานด้วยการยึด power assertion — คำขอที่มีชื่อซึ่งบอก macOS ว่าอย่าหลับ บันทึก 5.3.2 ของมันพูดถึงงานเรื่อง "การสร้างและปล่อย power assertion" (App Store) pmset ลิสต์ assertion ทุกตัวพร้อมโปรเซสที่ยึดมัน และ caffeinate สร้างมันจาก Terminal (man page) ผมรันแต่ละแฟล็กบน macOS 26.7 แล้วอ่านกลับว่าอะไรถูกสร้างด้วย pmset -g assertions:

แฟล็ก Assertion ที่สร้าง กันอะไรไว้ หยุดอะไรไม่ได้
ไม่มี หรือ -i PreventUserIdleSystemSleep การหลับเมื่อไม่มีการใช้งาน จอยังหลับได้ การปิดฝา การหลับจากเมนู Apple แบตเตอรี่ต่ำ
-d PreventUserIdleDisplaySleep การหลับของจอ และพ่วงการหลับเมื่อไม่มีการใช้งาน การปิดฝา
-m PreventDiskIdle ดิสก์ idle การหลับของระบบ
-s PreventSystemSleep การหลับของระบบ เฉพาะเมื่อใช้ไฟ AC ทุกอย่างเมื่อใช้แบตเตอรี่
-u UserIsActive เปิดจอ 5 วินาทีเว้นแต่ -t จะบอกเป็นอย่างอื่น —

แหล่งอ้างอิงของคอลัมน์สุดท้ายคือ Apple: IOPMLib.h เฮดเดอร์ที่นิยาม assertion เหล่านี้ ครอบคลุมสามแถวแรก man page ของ caffeinate ครอบคลุม -s นี่คือรายการจริงที่ caffeinate -i -t 5 สร้างขึ้น (ตัดมา: สรุปทั้งระบบและโปรเซสอื่นถูกลบออก):

$ caffeinate -i -t 5 &
$ pmset -g assertions
   pid 78373(caffeinate): [0x001a50d600019830] 00:00:01 PreventUserIdleSystemSleep named: "caffeinate command-line tool"
	Details: caffeinate asserting for 5 secs
	Localized=THE CAFFEINATE TOOL IS PREVENTING SLEEP.
	Timeout will fire in 4 secs Action=TimeoutActionRelease

รันคำสั่งเดียวกันระหว่างเซสชัน Amphetamine แล้วคุณจะเห็นว่าตัวเลือกที่คุณเลือกยึดอะไรไว้ แต่ละบรรทัดบอกชื่อเจ้าของของมัน มันยังเป็นคำตอบที่เร็วที่สุดสำหรับ "อะไรทำให้ Mac ของฉันตื่นอยู่" — pmset -g ธรรมดาจะพิมพ์ sleep prevented by ตามด้วยชื่อโปรเซส

ฝาเครื่องคือจุดที่คนติด สำหรับ assertion กันหลับเมื่อไม่มีการใช้งานที่ caffeinate ยึดโดยดีฟอลต์และด้วย -i เฮดเดอร์ของ Apple บอกว่าระบบ "ยังอาจหลับจากการปิดฝา เมนู Apple แบตเตอรี่ต่ำ หรือเหตุผลการหลับอื่น ๆ" นั่นคือเหตุผลที่ caffeinate และ KeepingYouAwake หยุดที่ฝา — KeepingYouAwake ห่อ caffeinate ทับและบอกตรง ๆ ว่าทำให้ MacBook ที่ปิดฝาตื่นอยู่ไม่ได้ การปิดฝาต้องใช้การต่อจอภายนอกแบบของ Apple หรือการ override การหลับเมื่อปิดฝา

Amphetamine ปลอดภัยไหม

ในบรรดายูทิลิตี้ Mac แอป Amphetamine Mac ถือว่าถูกจำกัดขอบเขตไว้ดี แอปบน Mac App Store รันใน sandbox — เหตุผลที่ Enhancer มีอยู่เลย (README ของ Enhancer) ป้ายกำกับความเป็นส่วนตัวของนักพัฒนาบน App Store ระบุแค่ข้อมูลการวินิจฉัย ไม่ผูกกับตัวคุณ

ส่วนเสริมสามตัวที่ทำงานนอก sandbox ล้วนเป็น opt-in และเผยแพร่บน GitHub: Enhancer สัญญาอนุญาต MIT และผ่าน notarized จาก Apple, สคริปต์ Process Discovery ซึ่งให้ Trigger เห็นโปรเซสมากขึ้น, และ Power Protect ซึ่งเป็นสคริปต์บวกไฟล์ sudoers ที่ครอบเฉพาะสองคำสั่ง pmset นั้น

ความเสี่ยงที่เป็นจริงคือเซสชันที่ลืมไว้ซึ่งกันการหลับบนแบตเตอรี่ Amphetamine จบเซสชันได้เมื่อแบตเตอรี่ต่ำ — เปิดมันไว้ ถ้าคุณเลิกใช้ Closed-Display Mode แล้ว Feedback & Support → Uninstall Scripts… ในเมนูของมันจะลบสคริปต์ออก

Timex อยู่ตรงไหน

ผมทำ Timex แอปติดตามเวลาสำหรับ Mac และมันมีสวิตช์ Stay Awake นี่คือการเปรียบเทียบอย่างยุติธรรม Stay Awake คือสวิตช์เดียว มันกันการหลับเมื่อไม่มีการใช้งานแบบเดียวกับที่ caffeinate -i ทำ จนกว่าคุณจะปิดมัน ยังอยู่แม้เปิดแอปใหม่ และถูกปล่อยเมื่อคุณออก จอยังหลับและจอยังล็อก เสียบปลั๊กพร้อมปิดฝา Mac ยังรันต่อ ใช้แบตเตอรี่พร้อมปิดฝา macOS จับมันหลับอยู่ดี มันคือสวิตช์ ไม่ใช่เอนจินตั้งกฎ

ผมปล่อยมันออกมาเพื่อแก้ปัญหาของตัวเอง — การรันโมเดลในเครื่องยาว ๆ ที่ค้างเพราะ Mac หลับ — และผมอยากได้สวิตช์อยู่ข้าง ๆ ตัวติดตามที่บอกว่างานรันต่อหรือไม่ นั่นคือสิ่งที่การติดตามเวลารัน LLM ในเครื่องพูดถึง Stay Awake ฟรีใน Timex ตลอดไป แต่ถ้าสิ่งที่คุณอยากได้คือ Mac ที่ตื่นอยู่ Amphetamine ฟรีและทำได้มากกว่ามาก Timex ต้องใช้ macOS 15 ขึ้นไปบน Apple Silicon และมันคุ้มติดตั้งก็เพราะตัวติดตามเท่านั้น

ข้อควรระวังอย่างซื่อสัตย์

ผมไม่ได้ทดสอบ Closed-Display Mode สำหรับบทความนี้ ทุกอย่างในบทความนี้เกี่ยวกับมันมาจาก release notes และไฟล์ที่เผยแพร่ของนักพัฒนา

disablesleep ไม่มีเอกสาร ถ้าคุณตั้งมันเอง ให้ย้อนกลับด้วย sudo pmset -a disablesleep 0 เมื่องานเสร็จ

แอปที่ไม่มีเวอร์ชันใหม่จะแก่ลงเงียบ ๆ 5.3.2 อายุเกือบสามปี ถ้าอัปเดต macOS ทำให้ Trigger พัง ยังไม่มีเวอร์ชันแก้ปล่อยออกมา

ฝาที่ปิดอยู่กักความร้อน งานหนักที่รันตอนปิดฝาจะได้ลมระบายน้อยลง ตามที่ FAQ ของ Sleepless ระบุ และคู่มือของ Clamshell เตือนว่าอย่ารันในกระเป๋าหรือซอง ใส่ไว้บนโต๊ะ

ตกลง ติดตั้งไหม

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

และถ้าคุณอยากรู้ด้วยว่าชั่วโมงของคุณหายไปไหนขณะที่ Mac ยังตื่นอยู่ ดาวน์โหลด Timex ช่วงทดลอง 100 ชั่วโมงครอบคลุมการติดตาม ส่วน Stay Awake ยังฟรีไม่ว่าทางไหน

— DK