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
노드에서 명령을 실행 하면 이미 로그인했지만 아무것도 표시되지 않았습니다.
어떤 조언이라도 대단히 감사하겠습니다. 감사합니다!