Ctrl/T 機能を使用すると、現在のプロセスに関する統計情報が 1 行表示されます。対話型ターミナル セッション中に 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 が作業を完了すると、OS は TYPE.EXE と同じプロセスにまだ存在する DCL コードに制御を返します。
DCL、語彙表、さまざまなもののアドレスのよく知られたジャンプ表を含むこの重いプロセスにより、Ctrl-T が機能します。このキー シーケンスはキーボード割り込みの特殊な形式にすぎず、任意のプロセス内の DCL コードで、説明した作業を実行できます。
Linux プロセスには、必ずしもシェル (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 用の優れた出力があります。