![运行脚本时 CIFS 共享已满,所有进程都卡在 D 状态。该怎么办?](https://linux22.com/image/1410723/%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC%E6%97%B6%20CIFS%20%E5%85%B1%E4%BA%AB%E5%B7%B2%E6%BB%A1%EF%BC%8C%E6%89%80%E6%9C%89%E8%BF%9B%E7%A8%8B%E9%83%BD%E5%8D%A1%E5%9C%A8%20D%20%E7%8A%B6%E6%80%81%E3%80%82%E8%AF%A5%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F.png)
标题基本概括了所有内容。
我有一个小脚本负责压缩和复制文件到 MS 共享文件夹。
显然,上周有一天,其他进程也必须将文件复制到同一台服务器,但由于空间不足,整个过程被挂起了。
尝试在已挂载的共享文件夹(在本例中为 /mnt/samba)中执行任何命令都会导致终端永远挂起。即使尝试也kill -9 pid
无济于事。
我猜想某些主要过程堵塞了整个过程。
我尝试了sudo umount -l
,虽然已挂载的共享似乎已卸载,但进程仍然存在并正在运行,因此我无法再次正确挂载它(我可以通过 Gnome 桌面中的“连接到服务器...”对话框进入共享,但我需要通过挂载它mount
)。
我可以看到脚本的命令试图无限期地运行,但就像我之前说的,我无法终止它们,甚至无法从 root 用户终止它们。我已经重新启动了服务smb
,但没有任何效果。
有没有办法强制 cifs 共享超时,或者以某种方式彻底终止所有相关的正在运行的进程,以便我可以再次挂载共享?(遗憾的是,目前无法重新启动 xD)。
我可以让那些 D 进程在那里运行,但我需要能够再次挂载共享。有什么想法吗?