答案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 提供了很好的输出。