←→ Underneath: Background Apps · Tất cả hướng dẫn Mac

Cách xem những gì đang chạy nền trên máy Mac

Máy Mac của bạn chạy hàng trăm tiến trình mà bạn chưa từng mở. Phần lớn thuộc về macOS. Một số đến từ ứng dụng bạn đã cài, và một vài trong số đó khởi động lại mỗi lần bạn đăng nhập. Dưới đây là cách tìm chúng.

Trả lời ngắn: mở Giám sát hoạt động để xem những gì đang chạy, và Cài đặt hệ thống › Cài đặt chung › Mục đăng nhập & tiện ích mở rộng để xem những gì tự khởi động. Để có bức tranh đầy đủ, hãy xem các thư mục LaunchAgents và LaunchDaemons hoặc chạy launchctl list trong Terminal.

1. Giám sát hoạt động: những gì đang chạy ngay lúc này

Mở ứng dụng từ Ứng dụng › Tiện ích, hoặc nhấn ⌘ Space và gõ “Giám sát hoạt động”.

Điều nó bỏ sót: nó không cho biết vì sao một tiến trình chạy, tiến trình đó có quay lại sau khi khởi động lại không, hay tệp nào khởi động nó. Những cái tên như com.adobe.acc.installer.v2 hoặc Google Chrome Helper (Renderer) không nói lên nhiều điều.

2. Mục đăng nhập & tiện ích mở rộng: những gì tự khởi động

Mở Cài đặt hệ thống › Cài đặt chung › Mục đăng nhập & tiện ích mở rộng (Login Items & Extensions). Bạn sẽ thấy hai danh sách:

Điều nó bỏ sót: nó không cho biết một mục có đang chạy không, dùng bao nhiêu bộ nhớ, hoặc đến từ tệp nào. Một số mục chỉ hiển thị tên nhà phát triển.

3. Các thư mục LaunchAgents và LaunchDaemons

Phần lớn tác vụ nền tự khởi động là tác vụ launchd. Mỗi tác vụ là một tệp .plist nhỏ cho macOS biết cần chạy cái gì và khi nào. Trong Finder, chọn Đi › Đi tới thư mục… (⇧⌘G) và mở:

Thư mụcChạy dưới quyềnKhởi động
~/Library/LaunchAgentsBạnKhi bạn đăng nhập
/Library/LaunchAgentsTừng người dùngKhi bất kỳ người dùng nào đăng nhập
/Library/LaunchDaemonsrootKhi máy Mac khởi động, trước khi đăng nhập
/System/Library/Launch…macOSĐược bảo vệ; đừng đụng vào

Tên tệp thường là label của tác vụ, chẳng hạn com.google.keystone.agent.plist. Mở tệp trong trình soạn thảo văn bản để xem ProgramArguments (cái gì chạy), RunAtLoad (khởi động khi đăng nhập) và KeepAlive (khởi động lại nếu dừng).

Điều nó bỏ sót: từ macOS 13, ứng dụng còn có thể đăng ký tác vụ nền từ bên trong gói ứng dụng của chính nó, không có tệp nào trong các thư mục này. Những tác vụ đó chỉ xuất hiện trong Cho phép trong nền.

4. Terminal: danh sách đầy đủ

Các lệnh này chỉ đọc. Chúng không thay đổi gì.

Mọi tác vụ launchd được nạp cho người dùng của bạn, kèm ID tiến trình (dấu gạch ngang nghĩa là không chạy) và mã thoát lần cuối:

launchctl list | grep -v com.apple

Chi tiết của một tác vụ, gồm đường dẫn tệp plist và trạng thái:

launchctl print gui/$(id -u)/com.example.label

Các tiến trình lắng nghe trên một cổng mạng (máy chủ phát triển, công cụ đồng bộ):

lsof -nP -iTCP -sTCP:LISTEN

Các tiến trình của bạn, dùng nhiều bộ nhớ nhất xếp trước (RSS tính bằng kilobyte):

ps -U $(id -u) -o pid,rss,etime,comm -m | head -30

Mọi mục đăng nhập và mục nền mà macOS biết (cần mật khẩu quản trị viên; kết quả rất dài):

sudo sfltool dumpbtm

Thế nào là bình thường?

Nếu bạn không nhận ra một cái tên, hãy tìm kiếm label của nó hoặc tên nhà phát triển trong đường dẫn trước khi dừng nó.

Câu hỏi thường gặp

Có nhiều tiến trình chạy trên máy Mac có phải là xấu không?

Không. Một máy Mac bình thường chạy vài trăm tiến trình, và phần lớn thuộc về macOS. Hãy tìm vài tiến trình dùng nhiều bộ nhớ hoặc CPU, hoặc những tiến trình bạn không nhận ra.

Vì sao Giám sát hoạt động hiển thị nhiều tiến trình Google Chrome Helper như vậy?

Chrome và các ứng dụng Chromium hoặc Electron khác chạy một tiến trình trợ giúp cho mỗi tab, tiện ích mở rộng hoặc trình kết xuất (renderer). Chúng là một phần của ứng dụng và thoát khi ứng dụng thoát.

Launch agent được lưu ở đâu trên máy Mac?

Trong ~/Library/LaunchAgents cho người dùng của bạn, /Library/LaunchAgents cho mọi người dùng, và /Library/LaunchDaemons cho tác vụ toàn hệ thống chạy với quyền root. Các thư mục /System/Library thuộc về macOS và được bảo vệ.

Danh sách Mục đăng nhập trong Cài đặt hệ thống có hiển thị mọi thứ không?

Không. Danh sách này hiển thị các ứng dụng mở khi đăng nhập và các ứng dụng có mục nền, được nhóm theo ứng dụng hoặc nhà phát triển. Nó không cho biết cái gì đang chạy, dùng bao nhiêu bộ nhớ, hoặc tệp nào khởi động nó.