我在运行 CentOS 7 的 SGE 集群上做了很多工作,最近遇到了作业随机终止的问题,但似乎有些进程仍在运行,导致我无法清理并重新开始。当我尝试删除必要的文件时,我收到“没有这样的文件或目录”消息,但该文件显示在ls
.论坛搜索告诉我,这可能是因为名称中包含非打印字符,但我无法使用 创建具有相同名称的文件touch
,或使用 删除它rm -i
,并且 或 没有显示任何ls -b
内容ls -Q
。例如:
[ark19@blade04 testing]$ rm file_bad.csv
rm: cannot remove ‘file_bad.csv’: No such file or directory
[ark19@blade04 testing]$ rm -f file_bad.csv
[ark19@blade04 testing]$ ls file*
file1.csv file2.csv file_bad.csv
[ark19@blade04 testing]$ ls -l file*
-rwx——— 1 ark19 root 88552 Dec 26 18:31 file1.csv
-rwx——— 1 ark19 root 87149 Dec 26 18:32 file2.csv
-rwx——— 1 ark19 root 183588 Dec 27 19:45 file_bad.csv
[ark19@blade04 testing]$ ls -b file*
file1.csv file2.csv file_bad.csv
[ark19@blade04 testing]$ ls -Q file*
"file1.csv" "file2.csv" "file_bad.csv"
[ark19@blade04 testing]$ touch file_bad.csv
touch: cannot touch ‘file_bad.csv’: No such file or directory
[ark19@blade04 testing]$ rm -i -- file_bad.csv
rm: cannot remove ‘file_bad.csv’: No such file or directory
[ark19@blade04 testing]$ ls file*
file1.csv file2.csv file_bad.csv
因此,我相当确定问题是坏文件被某个进程持有,当我向集群管理员提出这个问题时,他们想出的唯一解决方案就是给他们文件名,以便他们可以删除它。这种情况发生得太频繁,无法成为一个可持续的解决方案,所以我想在这里询问我是否可以采取其他措施来自己解决该问题,例如以某种方式强制删除文件并关闭进入该文件的所有进程方式?
大多数时候,我不知道可疑进程正在哪个集群节点上运行,并且我不知道如何以某种方式检查所有进程以查找并终止适当的进程……如果我lsof
从节点运行命令我已经登录了,但什么也没有出现。
非常感谢任何建议,谢谢!