蘋果Mac系統(tǒng)關機很慢該怎么解決?

目前來說,造成關機慢的主要原因可以分為OS X系統(tǒng)本身問題和應用軟件問題。這兩個的本質區(qū)別在于,前者造成系統(tǒng)退出后屏幕出現(xiàn)“旋轉齒輪”(Spinning Gear,俗稱無限菊花,甚至有人數(shù)圈數(shù),稱之20圈菊花等等)并等待很長時間,而后者是在系統(tǒng)退出之前,系統(tǒng)嘗試退出所有當前運行中的程序的過程,說得更具體點就是,launchd本身退出之時(系統(tǒng)問題)或之前(應用軟件問題)。應用軟件問題我們這里無法給出任何的答案,Apple也無能為力。我們主要是討論系統(tǒng)問題。
在后面我們給出一個靠譜的解決方案之前,我們來看看對一個系統(tǒng)問題應該如何入手。當我們?nèi)シ治龃蠹医鉀Q問題的思路的時候可以發(fā)現(xiàn),有這樣幾個大致思路,有的從硬件入手,比如重置PRAM和SMC,內(nèi)存等方法;有的是根據(jù)以往的解決大多數(shù)問題的思路開始著手,比如建議修復權限、禁止啟動項等就是這個思路;有的是碰機會,比如關Wifi等。其實,他們都有可能,但是都沒有抓住一個基本有效的方法。對于Troubleshooting的手段來說,幾乎所有有經(jīng)驗的程序開發(fā)人員/系統(tǒng)管理人員等都會想到,系統(tǒng)日志logs,檢查系統(tǒng)日志是排除故障的一大利器,尤其是系統(tǒng)級別的。其實早有網(wǎng)友就注意從這方面著手,可惜有點偏了沒有找到重點。
1、要抓住重點,還要從系統(tǒng)的內(nèi)部管理來說。OS X系統(tǒng)啟動的基本步驟是這樣的:
- 通電,Boot-ROM進行初始化。
- Boot-ROM后處理,此時是黑屏,電源LED燈亮,如果出現(xiàn)任何錯誤,LED燈會有規(guī)律閃動。
- 開始調用EFI:會聽到咚的那一個長音。
- EFI啟動:會響應用戶鍵盤,比如進入單用戶模式等按鍵。正常情況下,讀取boot.efi正常后,出現(xiàn)銀色的Apple標識。
- 啟動內(nèi)核:看到灰色背景和旋轉齒輪。從這里開始,就可以從Activity Monitor程序中找到各個進程的關系了。
- 啟動launchd:此時看到藍屏。launchd負責啟動和管理系統(tǒng)的各個服務
- login窗口出現(xiàn):
- 用戶登錄:用戶登錄后,系統(tǒng)也是使用另外一個launchd來為該用戶開啟用戶環(huán)境的,之后,用戶的所有動作(除非特殊情況),都在這第二個launchd的管理之下。
2、現(xiàn)在讓我們開啟在/Applications/Utilities目錄中的Activity Monitor程序,選擇All Process, Hierarchically, 如下圖,就可以看到各個進程之間的關系。核心總是占用任務ID 0的,而第一個launchd總是ID 1,用戶launchd(下圖中的ID 154)是ID 1的進程子進程。
3、既然啟動是這個過程,那么退出/關機就是一個反過程。先關閉用戶環(huán)境,就是用戶launchd的退出過程;之后是系統(tǒng)退出過程,也就是ID 1的launchd的退出過程。所以,系統(tǒng)關閉慢的原因,應該是ID 1的launchd在關閉各個由他負責關閉的某個/某些服務的退出延遲造成的。當我們了解了這些之后,就可以著手分析了。
如何找到哪個服務進程退出延遲了呢?這就要看日志了,打開Console程序,在左邊找到/var/log >> com.apple.launchd >> launchd-shutdown.system.log,之后,在右上角的查找中,輸入timeout,就會出現(xiàn)如下圖的畫面,改圖這是我修改之后的截圖,在修改之前,兩個服務的timeout時間, applevents是20 seconds, securityd是15秒。
4、這就找到了系統(tǒng)關閉奇慢的真正原因了,launchd給各個服務發(fā)出SIGKILL信號后,等待所有服務都退出后,才能退出,而由于一些服務退出超時,就造成整個系統(tǒng)關閉放慢。至于,這些服務為什么/什么情況下出現(xiàn)退出異常超時以及如何徹底解決之,我們只有讓Apple的系統(tǒng)開發(fā)人員處理了,我們無從修復,不過我們可以通過給他設定退出超時時長來改變一下它的行為,這就需要一點對plist文件的知識了,具體的系統(tǒng)(launchd)如何定義和解讀plist文件,我們不進行深入探討,只給出方法,有興趣的可以去developer.apple.com去讀相關的文檔。
綜上所述,目前來說,比較靠譜的思路就是,給每個造成退出超時的系統(tǒng)服務設定一個比較短的退出超時時間(1或2秒)。
根據(jù)上面找到的兩個服務來說,一個是com.apple.securityd,一個是com.apple.coreservices.appleevents。我們使用下面的命令來對他們進行處理。
sudo defaults write /System/Library/LaunchDaemons/com.apple.securityd ExitTimeOut -int 2
sudo defaults write /System/Library/LaunchDaemons/com.apple.coreservices.appleevents ExitTimeOut -int 1
6、如果系統(tǒng)詢問,請輸入當前管理員密碼,以完成該命令。
之后,重新啟動系統(tǒng)后,再次關機的時候,就可以實現(xiàn)"秒關",而看不到旋轉菊花了。當然,每個系統(tǒng)的情況不一樣,造成緩慢的原因會不同,所以,每個人需要針對自己機器的情況來具體處理。如果需要幫助,可以留言,并把上面Console中timeout的情況說明,我可以為大家具體寫出命令。
相關文章
- 最近將電腦升級了MacOS Sierra,手機后發(fā)現(xiàn)關機都特別慢,起碼要20分鐘。問了周圍朋友有的出現(xiàn)有的沒有。通過查找一番資料今天才知道是因為本地MySQL服務的問題。所以那就2016-12-15
新MacBook Pro怎么開關機?MacBook Pro沒電源按鍵的開機方法
10月28日凌晨,蘋果推出全新的13英寸MacBook Pro,售價為11488元起,比MacBook Air更輕薄,集成了Touch ID按鍵,如果想知道新MacBook Pro怎么開關機的話,下面就來看看了解2016-10-28- 今天有一朋友問我能不能給 Mac 設置定時關機。其實 OS X 系統(tǒng)就自帶了這相關的功能,只不過”藏”的有點深。這里給大家專門分享一下2016-05-05
Mac系統(tǒng)中Safari無法退出不能關機該怎么辦?
Mac系統(tǒng)中Safari無法退出不能關機該怎么辦?mac電腦Safari瀏覽器沒辦法推出才導致的不能關機,今天我們來看看怎么解決Safari瀏覽器取消關機的問題,需要的朋友可以參考下2016-01-25蘋果Mac電腦怎么定時關機?在OS X上設定定時關機方法介紹
有的時候可能會有讓 Mac 定時自己關機的需要,這個功能是可以有的,并且 Mac 系統(tǒng)自帶了這么樣一個功能,那么Mac電腦怎么定時關機?下面小編就為大家介紹在OS X上設定定時關2015-08-09- Mac系統(tǒng)下也是有非常便捷的快捷操作的,下面小編給大家總結一下關于關機的相關快捷鍵操作,讓大家都成為熟練操作Mac的高手2015-06-24
Mac裝Win8.1每次關機后都重啟怎么解決?Mac裝Win8.1關不了機的解決方法
MacBook新款筆記本電腦已經(jīng)正式發(fā)布了,有部分已提前拿到機器的網(wǎng)友表示在安裝Windows8.1時會出現(xiàn)系統(tǒng)黑屏以及每次關機后都重啟的現(xiàn)象,針對此類現(xiàn)象,本文就為大家進行解2015-04-03蘋果電腦怎么關機 Mac系統(tǒng)關機快捷鍵及關機方法介紹
蘋果電腦運行的是MAC OS X系統(tǒng),與我們創(chuàng)建的windows系統(tǒng)在操作上有很大的區(qū)別,那么,蘋果電腦怎么關機以及蘋果電腦的關機快捷鍵是什么?針對此問題,本文就為大家介紹Mac2015-02-25- 使用電腦時,經(jīng)常會在無意中睡著了,而電腦卻依然開著,不僅浪費電,而且影響電腦的使用壽命,關于這個問題,如何讓他定時自動開機關機呢2015-02-05
讓MAC在非活躍狀態(tài)下自動注銷系統(tǒng)自動關機的方法
有時會突然離開電腦,使得MAC處于非活躍狀態(tài),那么如何讓它在非活躍狀態(tài)下自動注銷系統(tǒng),下面教大家讓MAC在非活躍狀態(tài)下自動注銷系統(tǒng)的方法2015-01-04