- Reference 29.1<br>System Initialization
- Reference 29.2<br>User Session
- Reference 29.3<br>Sleep Modes, Logout, and Shutdown
- Reference 29.4<br>Startup Shortcuts
- Reference 29.5<br>System Initialization Troubleshooting
- Reference 29.6<br>User Session Troubleshooting
- Exercise 29.1<br>Examine System Startup
- Exercise 29.2<br>Use Single-User Mod
Sleep Modes, Logout, and Shutdown
At the other end of the spectrum, but still related, are the processes required to pause or end the user session. The main distinction is that your Mac computer’s sleep function does not quit any open processes, whereas the user logout and system shutdown functions quit open processes. In most cases, the user manually issues a sleep, logout, or shutdown command from the Apple menu or by pressing the Mac computer’s power button.
However, other processes and applications can also initiate sleep, logout, or shutdown commands. For instance, the Installer and Mac App Store applications can request a restart when the installation of new or updated software requires it.
Further, you can configure the Mac to automatically perform certain commands. You can put the system to sleep after a period of inactivity with settings in Energy Saver preferences; set a schedule to sleep, shut down, or start up the Mac with settings in the Schedule dialog of Energy Saver preferences; automatically log out users after a period of inactivity with settings in Security & Privacy preferences; and automatically log out managed users with settings in Parental Controls preferences. Many of these settings can be managed remotely from Apple Remote Desktop or from a management server.
The Mac sleep function is convenient because it does not quit any active processes or applications. Instead, the system kernel pauses all processes and then essentially shuts down all the hardware. This greatly reduces the amount of power used; as an example, newer portable Mac devices can remain in sleep mode for up to a month on a single battery charge. Waking your Mac from sleep mode restarts all hardware, and the kernel resumes all processes and applications from the point at which you left them.
Safe Sleep and Standby Modes
All OS X Mavericks–compatible portable Mac computers support safe sleep, and newer Mac computers with flash storage also support an automatic standby mode. When these Mac systems go to sleep, they also copy the entire contents of system memory to an image file on the system volume. This way, if a portable Mac computer stays in sleep mode long enough to completely drain the battery, no data is lost when the system has to fully shut down. Hence the term “safe sleep.”
A Mac in safe sleep mode must be restarted just like a Mac that was shut down. In other words, you can only restart a Mac in safe sleep mode by pressing the power button. When you restart a Mac from safe sleep mode, the booter process reloads the saved memory image from the system volume instead of proceeding with the normal startup process.
The booter process indicates that the Mac is restarting from safe sleep mode by showing a light gray version of your Mac screen as it appeared when sleep was initiated and a small progress bar at the bottom of the main display. It should take only a few moments to reload system memory, and the kernel resumes all processes and applications. If FileVault 2 is enabled, the safe sleep-wake process is preceded by the FileVault 2 authentication unlock screen.
Newer Mac computers with flash storage will enter a power-saving standby mode automatically when they are completely idle for more than 3 hours while connected to AC power. However, “completely idle” means that the systems detect zero network or peripheral activity for more than 4 hours. Unlike safe sleep, Mac computers in standby mode do not need to be restarted and can be woken by interacting with the keyboard, trackpad, or mouse. During wake you may notice a small white progress bar at the bottom of the screen, similar to that of safe sleep mode. Though in most cases, waking from standby on a modern Mac is so fast you may not even notice.
Mac systems introduced after mid-2011 that feature all flash storage, like MacBook Air models, gained new sleep functionality in OS X Mountain Lion with Power Nap. This feature allows your Mac to occasionally wake from sleep in a low-power mode, known as “dark wake” because the display does not power up, and perform essential background tasks. Many built-in OS X applications and services can work in Power Nap including: Mail, Contacts, Calendar, Reminders, Notes, documents in iCloud, Photo Stream, Mac App Store updates, Time Machine backup, Find My Mac updates, VPN on demand, and MDM configuration profile updates.
For Mac systems that support Power Nap, it is enabled by default for when your Mac is connected to a power adapter. You can verify or adjust this setting from the Energy Saver settings. You can also optionally enable Power Nap for when your Mac is running from battery power, although this obviously reduces the Mac computer’s battery faster than normal system sleep.
When a Mac is put to sleep with Power Nap enabled, it first waits 30 minutes before dark-waking to check for updates. After that, it dark-wakes every hour to check for updates. You can verify that Power Nap is in effect by checking its log file via Console. The Power Nap log file is located at /var/log/zzz.log.
Users can log out any time they want to end their user session, but they also have to log out to shut down or restart the Mac. When the currently logged-in user chooses to log out, the user’s loginwindow process manages all logout functions with help from the user’s launchd process.
Once the user authorizes the logout, the user’s loginwindow process issues a Quit Application Apple event to all applications. Applications that support the OS X new Auto Save and Resume features can immediately save changes to any open documents and quit. Applications that do not support these features still respond to the Quit event, but they are programmed to ask the user if changes should be saved. Further, even applications that support Auto Save and Resume may still be waiting for the user if certain dialogs are left open. A great example is the Print dialog, which when left open, prevents the application from quitting. If the application fails to reply or quit itself, the logout process is stopped and loginwindow displays an error message.
If all the user’s applications successfully quit, the user’s loginwindow process then forcibly quits any background user processes. Finally, the user’s loginwindow process closes the user’s graphical interface session, runs any logout scripts, and records the logout to the main system.log file. If the user chooses only to log out, as opposed to shutting down or restarting, the user’s loginwindow and launchd processes quit, the system launchd process restarts a new loginwindow process owned by the root user, and the login screen appears.
Shutdown and Restart
When a logged-in user chooses to shut down or restart the Mac, again the user’s loginwindow process manages all logout functions with help from the system launchd process. First, the user’s loginwindow process logs out the current user. If other users are logged in via fast user switching, the loginwindow process asks for administrative user authentication and, if granted, forcibly quits all other users’ processes and applications, possibly losing user data.
After all user sessions are logged out, the user’s loginwindow process tells the kernel to issue the quit command to all remaining system processes. Processes like loginwindow should quit promptly, but the kernel must wait for processes that remain responsive while they are going through the motions of quitting. If system processes don’t respond after a few seconds, the kernel forcibly quits those processes. Once all processes are quit, the kernel stops the system launchd process and then shuts down the system. If the user chose to restart the Mac, the computer’s firmware begins the system startup process once again.