ACSP Apps and Processes 4 — Questions and Answers
Question 1: A user reports that an app is consuming excessive CPU even when not in use. Which macOS tool best identifies which specific process threads are responsible?
- Activity Monitor's CPU tab
- Console.app log viewer
- Instruments with the Time Profiler template (Correct answer)
- System Information app
Correct answer: Instruments with the Time Profiler template
Instruments with the Time Profiler template provides detailed thread-level CPU sampling to pinpoint exactly which code paths are consuming resources.
Question 2: When macOS kills a background app to reclaim memory for a foreground app, what term describes this action?
- Force quit
- App Nap suspension
- Jetsam termination (Correct answer)
- Sandbox eviction
Correct answer: Jetsam termination
Jetsam is the macOS/iOS memory management subsystem that terminates background processes when memory pressure requires it.
Question 3: A user wants to prevent a specific app from launching at login without deleting it. Where is the most appropriate place to manage this in macOS Ventura and later?
- Terminal using launchctl remove
- System Settings > General > Login Items & Extensions (Correct answer)
- Activity Monitor's Energy tab
- Finder > Applications folder
Correct answer: System Settings > General > Login Items & Extensions
In macOS Ventura and later, Login Items & Extensions in System Settings is the unified location to enable or disable apps and background items that launch at login.
Question 4: Which file extension identifies a macOS Launch Agent or Launch Daemon configuration file?
- .config
- .plist (Correct answer)
- .daemon
- .service
Correct answer: .plist
Launch Agents and Launch Daemons are configured using property list (.plist) files stored in LaunchAgents or LaunchDaemons directories.
Question 5: An ACSP technician needs to unload a Launch Daemon without rebooting. Which command achieves this?
- sudo killall -9 <daemon>
- sudo launchctl bootout system /Library/LaunchDaemons/<plist> (Correct answer)
- sudo defaults delete /Library/LaunchDaemons/<plist>
- sudo systemctl stop <daemon>
Correct answer: sudo launchctl bootout system /Library/LaunchDaemons/<plist>
The `launchctl bootout` command removes a Launch Daemon from the launchd bootstrap context without requiring a restart.
Question 6: A sandboxed app needs to access files outside its container. What mechanism must be used to grant this access on macOS?
- Modify the app's Info.plist directly
- Grant Full Disk Access in System Settings Privacy & Security (Correct answer)
- Use chmod to change file permissions
- Add the path to /etc/paths
Correct answer: Grant Full Disk Access in System Settings Privacy & Security
Sandboxed apps can only access files outside their container if the user explicitly grants Full Disk Access (or another relevant permission) via System Settings Privacy & Security.
Question 7: Which directory stores Launch Agents that run in the context of the currently logged-in user?
- /Library/LaunchDaemons/
- ~/Library/LaunchAgents/ (Correct answer)
- /System/Library/LaunchDaemons/
- /etc/launchd/
Correct answer: ~/Library/LaunchAgents/
Launch Agents in ~/Library/LaunchAgents/ run with the privileges of the logged-in user, making them user-scoped background tasks.
A user reports that an app is consuming excessive CPU even when not in use.
Which macOS tool best identifies which specific process threads are responsible?