슬라이스에서 디렉터리를 삭제했지만 mmf
다시 돌아왔습니다. 크기는 여전히 동일하고 계속해서 증가합니다. 디렉터리를 삭제하는 이유는 해당 디렉터리에서 로그를 생성한 프로세스에 대한 링크를 찾을 수 없기 때문입니다.
현재 82%이며 2시간마다 계속 증가합니다.
프로세스를 식별하고 종료하는 방법이 있습니까? 이 파일을 생성한 프로세스를 해제하기 위해 상자를 다시 시작할 수 있습니까?
답변1
링크되지 않은(삭제되지 않은) 파일에 쓰고 있는 프로세스를 찾아야 합니다. 모든 Unix 및 Unix 계열 운영 체제에서는 프로세스가 이름 없이 디렉터리에 열린 파일을 보관할 수 있습니다. 이는 파일 데이터(inode)와 디스크 블록을 보유하는 권한과 디스크 데이터 구조가 이름 및 디렉터리 위치와 다른 Unix 파일 시스템 설계의 결과입니다. 이것이 시스템 호출의 이유입니다 unlink(const char *pathname)
. 시스템 호출이 수행하는 모든 작업은 파일의 가능한 여러 이름 중 하나를 삭제하는 것입니다. 프로세스가 파일을 열면 파일은 삭제되지 않고 이름만 삭제됩니다.
어떻게든 프로세스를 찾아 종료해야 합니다. 솔라리스를 사용한지는 꽤 됐습니다. 때때로 Solaris 시스템에 이 프로그램이 설치되어 있다는 것을 알고 있습니다 lsof
. 이를 사용하여 문제가 있는 프로세스를 찾을 수 있습니다. 솔라리스에는 /proc
파일 시스템이 있지만 /proc
열린 파일을 찾는 것은 리눅스만큼 쉽지 않습니다. 재부팅하면 문제가 해결될 수도 있지만 이는 과감한 조치처럼 보입니다.