有时我会无意/本能地重复tab进入一个我可能不应该进入的目录。在当前情况下,我写这篇文章的原因是,它位于一个旧的、非常满的 cifs 驱动器上。
当然,这会导致控制终端挂起以等待目录列表,Ctrl+C什么也不做,因为它向错误的进程发送了中断(我认为列表是在子 shell 中生成的)。
有什么方法可以终止此列表?它是进程列表中可见的东西吗?还是我只需等待列表通过(似乎没有超时)。
这是 Ubuntu 16.04 上的 Bash。
不是“如何禁用”的重复。我不想禁用该功能,我想知道当它在目录列表上意外运行时如何停止它,这将花费很长时间。
答案1
Ctrl+C什么也不做,因为它向错误的进程发送了中断(我认为列表是在子 shell 中生成的)。
它正在向正确的进程发送中断,但该进程处于不间断睡眠。
不可中断的睡眠状态是一种不会立即处理信号的睡眠状态。它只会在等待的资源可用或等待期间发生超时后被唤醒(如果在进入睡眠状态时指定)。它主要由等待磁盘或网络 IO(输入/输出)的设备驱动程序使用。当进程处于不可中断的睡眠状态时,睡眠期间积累的信号将在进程从系统调用或陷阱返回时被注意到。
在类 Unix 系统中,该命令
ps -l
使用代码D
来表示进程的不可中断睡眠状态。即使使用,也无法终止此类进程,SIGKILL
而终止它们的唯一简单方法是重新启动系统。
所以
有什么办法可以取消此列表吗?
重启。
它是在进程列表中可见的东西吗?
D
是的。这是一个州内进程。
我是不是只能等待列表发布?
是的。或者重启。