←→ Underneath: Background Apps · คู่มือ Mac ทั้งหมด
วิธีดูว่ามีอะไรทำงานอยู่เบื้องหลังบน Mac ของคุณ
Mac ของคุณเรียกใช้โปรเซสหลายร้อยตัวที่คุณไม่เคยเปิดเอง ส่วนใหญ่เป็นของ macOS มีไม่กี่ตัวที่มาจากแอปที่คุณติดตั้ง และบางตัวในนั้นจะเริ่มใหม่ทุกครั้งที่คุณเข้าสู่ระบบ ต่อไปนี้คือวิธีค้นหาโปรเซสเหล่านั้น
คำตอบสั้นๆ: เปิด ตัวติดตามกิจกรรม (Activity Monitor) เพื่อดูสิ่งที่ทำงานอยู่ตอนนี้ และเปิด การตั้งค่าระบบ › ทั่วไป › รายการเข้าสู่ระบบและส่วนขยาย เพื่อดูสิ่งที่เริ่มเอง หากต้องการภาพรวมทั้งหมด ให้ดูในโฟลเดอร์ LaunchAgents และ LaunchDaemons หรือเรียกใช้ launchctl list ในเทอร์มินัล
1. ตัวติดตามกิจกรรม: สิ่งที่ทำงานอยู่ตอนนี้
เปิดจาก แอปพลิเคชัน › ยูทิลิตี้ หรือกด ⌘ Space แล้วพิมพ์ “ตัวติดตามกิจกรรม”
- คลิกแถบ หน่วยความจำ แล้วเรียงตามคอลัมน์ หน่วยความจำ ตัวที่ใช้มากที่สุดจะอยู่ด้านบน
- เลือก มุมมอง › โปรเซสของฉัน (View › My Processes) เพื่อซ่อนโปรเซสของระบบและของผู้ใช้อื่น
- เลือก มุมมอง › โปรเซสทั้งหมดตามลำดับชั้น (View › All Processes, Hierarchically) เพื่อดูว่าโปรเซสใดเริ่มโปรเซสใด
- คลิกสองครั้งที่โปรเซสแล้วเปิด ไฟล์และพอร์ตที่เปิดอยู่ (Open Files and Ports) เพื่อดูพาธของโปรเซส
สิ่งที่มองไม่เห็น: ไม่ได้บอกว่าทำไมโปรเซสจึงทำงาน จะกลับมาหลังเริ่มการทำงานใหม่หรือไม่ หรือไฟล์ใดเป็นตัวเริ่ม ชื่ออย่าง com.adobe.acc.installer.v2 หรือ Google Chrome Helper (Renderer) บอกอะไรได้น้อยมาก
2. รายการเข้าสู่ระบบและส่วนขยาย: สิ่งที่เริ่มเอง
เปิด การตั้งค่าระบบ › ทั่วไป › รายการเข้าสู่ระบบและส่วนขยาย คุณจะเห็นสองรายการ:
- เปิดเมื่อเข้าสู่ระบบ: แอปที่เปิดเมื่อคุณเข้าสู่ระบบ เลือกแอปแล้วคลิก – เพื่อเอาออก
- อนุญาตในพื้นหลัง: แอปและนักพัฒนาที่มีตัวช่วยเบื้องหลัง เช่น ตัวอัปเดต เอเจนต์ซิงค์ หรือตัวตรวจสอบ VPN ปิดได้ด้วยสวิตช์ ดู“อนุญาตในพื้นหลัง” หมายถึงอะไร
สิ่งที่มองไม่เห็น: ไม่ได้บอกว่ารายการกำลังทำงานอยู่ตอนนี้หรือไม่ ใช้หน่วยความจำเท่าไร หรือมาจากไฟล์ใด บางรายการแสดงเพียงชื่อนักพัฒนา
3. โฟลเดอร์ LaunchAgents และ LaunchDaemons
งานเบื้องหลังส่วนใหญ่ที่เริ่มเองคือ งาน launchd แต่ละงานคือไฟล์ .plist ขนาดเล็กที่บอก macOS ว่าจะเรียกใช้อะไรและเมื่อไร ใน Finder ให้เลือก ไป › ไปยังโฟลเดอร์… (⇧⌘G) แล้วเปิด:
| โฟลเดอร์ | ทำงานในฐานะ | เริ่มเมื่อ |
|---|---|---|
~/Library/LaunchAgents | คุณ | เมื่อคุณเข้าสู่ระบบ |
/Library/LaunchAgents | ผู้ใช้แต่ละคน | เมื่อผู้ใช้คนใดก็ได้เข้าสู่ระบบ |
/Library/LaunchDaemons | root | เมื่อ Mac เริ่มทำงาน ก่อนเข้าสู่ระบบ |
/System/Library/Launch… | macOS | ได้รับการป้องกัน อย่าแตะต้อง |
ชื่อไฟล์มักเป็นป้ายกำกับของงาน เช่น com.google.keystone.agent.plist เปิดไฟล์ในโปรแกรมแก้ไขข้อความเพื่อดู ProgramArguments (สิ่งที่เรียกใช้), RunAtLoad (เริ่มเมื่อเข้าสู่ระบบ) และ KeepAlive (เริ่มใหม่เมื่อหยุด)
สิ่งที่มองไม่เห็น: ตั้งแต่ macOS 13 แอปยังสามารถลงทะเบียนงานเบื้องหลังจากภายใน bundle ของแอปเองได้ โดยไม่มีไฟล์ในโฟลเดอร์เหล่านี้ งานเหล่านั้นจะปรากฏเฉพาะใต้ อนุญาตในพื้นหลัง
4. เทอร์มินัล: รายการที่สมบูรณ์
คำสั่งเหล่านี้เป็นแบบอ่านอย่างเดียว ไม่เปลี่ยนแปลงสิ่งใด
งาน launchd ทั้งหมดที่โหลดอยู่สำหรับผู้ใช้ของคุณ พร้อมโปรเซส ID (ขีดหมายถึงไม่ได้ทำงาน) และรหัสออกล่าสุด:
launchctl list | grep -v com.apple
รายละเอียดของงานหนึ่งงาน รวมถึงพาธ plist และสถานะ:
launchctl print gui/$(id -u)/com.example.label
โปรเซสที่รอรับการเชื่อมต่อบนพอร์ตเครือข่าย (เซิร์ฟเวอร์สำหรับพัฒนา เครื่องมือซิงค์):
lsof -nP -iTCP -sTCP:LISTEN
โปรเซสของคุณเอง เรียงจากใช้หน่วยความจำมากที่สุด (RSS มีหน่วยเป็นกิโลไบต์):
ps -U $(id -u) -o pid,rss,etime,comm -m | head -30
ทุกรายการเข้าสู่ระบบและรายการพื้นหลังที่ macOS รู้จัก (ต้องใช้รหัสผ่านผู้ดูแลระบบ ผลลัพธ์ยาว):
sudo sfltool dumpbtm
อะไรคือเรื่องปกติ
- ตัวช่วยหลายตัวสำหรับแอปเดียว Chrome, Slack, VS Code และแอปอื่นๆ ที่ใช้ Chromium หรือ Electron จะเรียกใช้หนึ่งโปรเซสต่อหนึ่งแท็บหรือหน้าต่าง และจะออกพร้อมกับแอป
- ตัวอัปเดต Google, Microsoft, Adobe และ Zoom ติดตั้งเอเจนต์ที่ตรวจหาอัปเดต โดยทั่วไปมีขนาดเล็กและหยุดได้อย่างปลอดภัย แต่แอปจะไม่อัปเดตเอง
- การซิงค์คลาวด์และ VPN Dropbox, OneDrive และไคลเอนต์ VPN ต้องใช้ตัวช่วยจึงจะทำงานได้ การหยุดตัวช่วยจะหยุดการซิงค์หรือการป้องกันด้วย
- เครื่องมือนักพัฒนา บริการ Homebrew, Docker, ฐานข้อมูล และเซิร์ฟเวอร์สำหรับพัฒนาในเครื่องจะยังทำงานต่อไปหลังจากคุณปิดเทอร์มินัล
หากคุณไม่รู้จักชื่อใด ให้ค้นหาป้ายกำกับหรือชื่อนักพัฒนาในพาธของมันก่อนที่จะหยุด
คำถามที่พบบ่อย
การมีโปรเซสทำงานอยู่จำนวนมากบน Mac เป็นเรื่องไม่ดีหรือไม่
ไม่ Mac ทั่วไปมีโปรเซสทำงานอยู่หลายร้อยตัว และส่วนใหญ่เป็นของ macOS ให้มองหาเพียงไม่กี่ตัวที่ใช้หน่วยความจำหรือ CPU มาก หรือที่คุณไม่รู้จัก
ทำไมตัวติดตามกิจกรรมจึงแสดงโปรเซส Google Chrome Helper จำนวนมาก
Chrome และแอปอื่นๆ ที่ใช้ Chromium หรือ Electron จะเรียกใช้โปรเซสตัวช่วยหนึ่งตัวต่อแท็บ ส่วนขยาย หรือตัวเรนเดอร์ โปรเซสเหล่านี้เป็นส่วนหนึ่งของแอปและจะออกเมื่อแอปออก
launch agent ถูกเก็บไว้ที่ใดบน Mac
อยู่ใน ~/Library/LaunchAgents สำหรับผู้ใช้ของคุณ, /Library/LaunchAgents สำหรับผู้ใช้ทุกคน และ /Library/LaunchDaemons สำหรับงานทั้งระบบที่ทำงานในฐานะ root โฟลเดอร์ /System/Library เป็นของ macOS และได้รับการป้องกัน
รายการเข้าสู่ระบบในการตั้งค่าระบบแสดงทุกอย่างหรือไม่
ไม่ รายการนี้แสดงแอปที่เปิดเมื่อเข้าสู่ระบบและแอปที่มีรายการพื้นหลัง โดยจัดกลุ่มตามแอปหรือนักพัฒนา แต่ไม่แสดงว่าตอนนี้มีอะไรกำลังทำงาน ใช้หน่วยความจำเท่าไร หรือไฟล์ใดเป็นตัวเริ่ม