←→ Underneath: Background Apps · คู่มือ Mac ทั้งหมด

วิธีดูว่ามีอะไรทำงานอยู่เบื้องหลังบน Mac ของคุณ

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

คำตอบสั้นๆ: เปิด ตัวติดตามกิจกรรม (Activity Monitor) เพื่อดูสิ่งที่ทำงานอยู่ตอนนี้ และเปิด การตั้งค่าระบบ › ทั่วไป › รายการเข้าสู่ระบบและส่วนขยาย เพื่อดูสิ่งที่เริ่มเอง หากต้องการภาพรวมทั้งหมด ให้ดูในโฟลเดอร์ LaunchAgents และ LaunchDaemons หรือเรียกใช้ launchctl list ในเทอร์มินัล

1. ตัวติดตามกิจกรรม: สิ่งที่ทำงานอยู่ตอนนี้

เปิดจาก แอปพลิเคชัน › ยูทิลิตี้ หรือกด ⌘ Space แล้วพิมพ์ “ตัวติดตามกิจกรรม”

สิ่งที่มองไม่เห็น: ไม่ได้บอกว่าทำไมโปรเซสจึงทำงาน จะกลับมาหลังเริ่มการทำงานใหม่หรือไม่ หรือไฟล์ใดเป็นตัวเริ่ม ชื่ออย่าง com.adobe.acc.installer.v2 หรือ Google Chrome Helper (Renderer) บอกอะไรได้น้อยมาก

2. รายการเข้าสู่ระบบและส่วนขยาย: สิ่งที่เริ่มเอง

เปิด การตั้งค่าระบบ › ทั่วไป › รายการเข้าสู่ระบบและส่วนขยาย คุณจะเห็นสองรายการ:

สิ่งที่มองไม่เห็น: ไม่ได้บอกว่ารายการกำลังทำงานอยู่ตอนนี้หรือไม่ ใช้หน่วยความจำเท่าไร หรือมาจากไฟล์ใด บางรายการแสดงเพียงชื่อนักพัฒนา

3. โฟลเดอร์ LaunchAgents และ LaunchDaemons

งานเบื้องหลังส่วนใหญ่ที่เริ่มเองคือ งาน launchd แต่ละงานคือไฟล์ .plist ขนาดเล็กที่บอก macOS ว่าจะเรียกใช้อะไรและเมื่อไร ใน Finder ให้เลือก ไป › ไปยังโฟลเดอร์… (⇧⌘G) แล้วเปิด:

โฟลเดอร์ทำงานในฐานะเริ่มเมื่อ
~/Library/LaunchAgentsคุณเมื่อคุณเข้าสู่ระบบ
/Library/LaunchAgentsผู้ใช้แต่ละคนเมื่อผู้ใช้คนใดก็ได้เข้าสู่ระบบ
/Library/LaunchDaemonsrootเมื่อ 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

อะไรคือเรื่องปกติ

หากคุณไม่รู้จักชื่อใด ให้ค้นหาป้ายกำกับหรือชื่อนักพัฒนาในพาธของมันก่อนที่จะหยุด

คำถามที่พบบ่อย

การมีโปรเซสทำงานอยู่จำนวนมากบน Mac เป็นเรื่องไม่ดีหรือไม่

ไม่ Mac ทั่วไปมีโปรเซสทำงานอยู่หลายร้อยตัว และส่วนใหญ่เป็นของ macOS ให้มองหาเพียงไม่กี่ตัวที่ใช้หน่วยความจำหรือ CPU มาก หรือที่คุณไม่รู้จัก

ทำไมตัวติดตามกิจกรรมจึงแสดงโปรเซส Google Chrome Helper จำนวนมาก

Chrome และแอปอื่นๆ ที่ใช้ Chromium หรือ Electron จะเรียกใช้โปรเซสตัวช่วยหนึ่งตัวต่อแท็บ ส่วนขยาย หรือตัวเรนเดอร์ โปรเซสเหล่านี้เป็นส่วนหนึ่งของแอปและจะออกเมื่อแอปออก

launch agent ถูกเก็บไว้ที่ใดบน Mac

อยู่ใน ~/Library/LaunchAgents สำหรับผู้ใช้ของคุณ, /Library/LaunchAgents สำหรับผู้ใช้ทุกคน และ /Library/LaunchDaemons สำหรับงานทั้งระบบที่ทำงานในฐานะ root โฟลเดอร์ /System/Library เป็นของ macOS และได้รับการป้องกัน

รายการเข้าสู่ระบบในการตั้งค่าระบบแสดงทุกอย่างหรือไม่

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