什麼是 Linux for OpenVMS DCL Ctrl/T?

什麼是 Linux for OpenVMS DCL Ctrl/T?

開放式虛擬管理系統 DCL字典

Ctrl/T 功能顯示有關目前進程的單行統計資料。當您在互動式終端會話期間按 Ctrl/T 時,它會暫時中斷目前命令、命令流程或影像以顯示統計資料。統計資訊包括節點和使用者名稱、當前時間、當前進程、CPU 使用率、頁面錯誤數、I/O 活動等級和記憶體使用率。例如:

BOSTON::SMITH  16:21:04 EDT       CPU=00:00:03.33 PF=778 IO=296 MEM=277

什麼是 Linux for OpenVMS DCL Ctrl/T?

答案1

我真誠地懷疑是否有確切的類似物。 Linux 進程的本質(以及運行命令的本質)與 VMS 進程的本質及其運行命令的方式截然不同,因此不可能真正存在這樣的進程。

據我了解 VMS,當您執行類似 的命令時TYPE SOMEFILE.TXT,DCL 會將 TYPE.EXE 讀取到記憶體中相同的過程DCL 在其中運行,修復 TYPE.EXE 所需的所有重定位,然後跳到 TYPE.EXE 的第一個指令。當 TYPE.EXE 完成其工作後,作業系統將控制權傳回仍駐留在與 TYPE.EXE 相同的進程中的 DCL 程式碼。

這個重量級進程包括 DCL、詞彙表和眾所周知的各種內容的地址跳表,允許 Ctrl-T 發揮作用。該按鍵序列只是鍵盤中斷的一種特殊形式,任何給定進程中的 DCL 程式碼都可以完成您所描述的工作。

Linux 進程中並不總是有 shell(DCL 類似)。 Linux 進程甚至可能沒有向核心註冊鍵盤中斷處理程序程式碼,這意味著任何鍵盤中斷(Ctrl-C 或 Ctrl-)都會讓核心導致進程退出。

答案2

BSD UNIX 系列支援 SIGINFO 訊號 [1] 和 VSTATUS 控製字元 [2],通常綁定到 Ctrl/T。輸出如下圖所示:

load: 0.12  cmd: cat 13579 [ttyraw] 0.00u 0.00s 0% 880k

[1] 訊號(7) [2] stty(1)

答案3

在 Linux 上,dd 支援 SIGUSR1 表示狀態: http://man7.org/linux/man-pages/man1/dd.1.html

  Sending a USR1 signal to a running 'dd' process makes it print I/O
  statistics to standard error and then resume copying.

在 BSD 上,dd 支援 SIGINFO 狀態: https://www.freebsd.org/cgi/man.cgi?query=dd&sektion=1

如果 dd 收到 SIGINFO(請參閱 stty(1) 的狀態參數)訊號,則目前輸入和輸出區塊計數將以與標準完成訊息相同的格式寫入標準錯誤輸出。如果 dd 收到 SIGINT 訊號,則目前輸入和輸出區塊計數將以與標準完成訊息相同的格式寫入標準錯誤輸出,並且 dd 將退出。

順便說一句:VMS BACKUP 程式為 Control-T 提供了很好的輸出。

相關內容