在活動監視器中有一個神祕的菜單選項,用於向進程發送信號。你有沒有想過那是什麼?如果您選擇它,您將看到像SIGINT和SIGHUP這樣的模糊術語,這並不完全清楚。那麼這些信號到底是什麼呢?
這些信號是MUOS核心UNIX基金會的結果。終端內置了一些這樣的信號:當您按下Ctrl+C來停止正在運行的命令時,您正在發送進程SIGINT來中斷並停止當前正在運行的命令。它們是應用程序相互通信的最早方式之一,是舊的“便攜式操作系統接口”(POSIX)標準的一部分。
雖然瞭解系統工作原理的基礎知識很好,但您也可以使用這些信號來捕獲有關行為不正常的應用程序的信息。
POSIX是UNIX和UNIX類操作系統的基礎標準。在這些兼容系統中,macOS是與Unix兼容的。其核心是Darwin,這是一個Unix核心,其根可以追溯到NeXTSTEP。它本身就是BSD的一個分支,BSD是最初的Unix變體之一。
POSIX確保所有這些操作系統都以預期的方式處理代碼,允許開發人員知道他們的代碼是真正可移植的。當他們將這些信號中的一個發送到另一臺機器上到一個進程時,他們得到的數據是以他們可以預期和處理的格式返回的。這是一個粗略的簡化大約40年的計算曆史,但你得到了一般的想法。
當與構成macOS的Unix基礎的最基本的守護進程通信時,這些信號是最好的。守護進程是後臺進程,運行計算機的基本功能——或者用macOS的通俗說法,就是服務。臭名昭著的發現就是一個例子。這是OS X Yosemite 10.10取代了mDNSResponder,這是另一項被認為是導致更新中出現網絡問題的服務。
根據應用程序接收信號的方式,您可以發送一個退出應用程序以創建所謂的核心轉儲的信號。核心轉儲包含有關正在運行的程序的所有當前數據。這些對於不斷崩潰的應用程序進行故障排除非常重要。在Mac上,這些轉儲採用Mach-O文件格式,您可以在名為Xcode的macOS開發環境中讀取。大多數用戶可能不會對這些做太多,但是如果你對應用程序問題感到沮喪,他們可以幫助發送給開發人員以獲得支持。
還有一點經典的計算在這裡顯示了它的根源。Mach-O文件格式與Mach微內核共享其名稱。與BSD一起,這是macOS根的一部分,這兩個是基礎內核XNU的一部分。Mach沒有BSD那麼有傳奇色彩,所以它並沒有受到很多媒體的關注,但它是蘋果操作系統區別於其他Unix變體的一部分。
我們以前都有過這樣的經歷:你得到一個應用程序的更新,或者下載一個新的應用程序,每次你打開它時它都會掛起。從Apple菜單中打開Force Quit,會看到應用程序顯示為沒有響應。更糟糕的是,這是一些後臺進程拖累你的系統。
打開Activity Monitor並單擊沒有響應的進程。然後轉到View(視圖)菜單並選擇Send signal to process(發送要處理的信號)。將彈出一個菜單,允許您選擇要發送到進程的信號選擇您的信號,然後按send。
如果您喜歡終端,您將使用您已經熟悉的命令。這個
kill命令用於停止進程。如果你加上
-s您可以添加一個數字,向正在殺死的進程發送信號。下面是一個列表,列出了
kill手冊頁:
還有一些其他的信號你也可以發送,這些只是最常見的。這裡有一個完整的代碼列表。
既然您知道如何處理POSIX信號,就可以使用它們**淨地停止掛起的進程。公平地說,你不會每天都使用這些代碼。當與開發人員一起處理一個奇怪的應用程序崩潰時,或者幫助您的sysadmin beta測試您公司的內部應用程序時,這些代碼可以幫助您獲得所需的信息。
如果應用程序被編碼為創建這些轉儲,那麼您將在目錄中找到它們
/cores使之成為在為崩潰或掛起的應用程序獲取數據時易於查找的目錄。您可以在這裡檢查並使用
ls -a命令。這將向您顯示該目錄中的所有文件,然後您可以使用music命令將它們複製到更易訪問的目錄中
mv filename destination.
終端使用
command cd /cores切換到目錄,然後
ls -a列出內容。只需使用
mv filename /Users/username/Documents(替換文件名和用戶名)。
如果您是一個長期使用Unix並遷移到Mac的用戶,那麼還有哪些鮮為人知的特性呢?如果你有興趣查看一個只使用Mac OS的開源基礎的項目,PurrdWin。請在評論中告訴我們這是怎麼回事。我們還想知道POSIX信號何時解決了Mac的一個棘手問題。
您以前使用過POSIX信號進行故障排除嗎?
圖片來源:Dean Drobot/Shutterstock
...用Windows,還有無數人使用Office、Skype和OneDrive等其他微軟應用和服務,因此瞭解到微軟官方社群是一個繁忙的地方就不足為奇了。 ...
...如果你買的不是光碟上的Windows,你需要建立自己的安裝程式。微軟已經讓這一過程變得相當簡單,但並不總是按計劃進行。 ...
...重新對映任務控制鍵以拍攝螢幕截圖,而不是顯示活動的應用程式。或者使用Launchpad鍵開啟emoji檢視器,或者選擇選單欄日曆? ...
...載出現問題是因為你的Mac不允許你開啟來自不明開發者的應用程式。您可以在“系統首選項”的“安全和隱私”窗格中找到此設定,它限制您開啟從應用程式商店下載的應用程式。 ...
... 如果你突然失去了網路訊號意外,一個移動的SIM卡可能是你的問題。 ...
...片。CPU、GPU、顯示器等方面的其他問題可能是購買新Mac的訊號。當你準備好購買時,學習如何在蘋果的網站上構建你的完美Mac。 ...