현재 하드 드라이브 공간이 부족한 Debian 서버가 있는데 이 lsof | grep deleted | less
명령을 사용하여 공간을 모두 사용했지만 해제되지 않은 문제 있는 파일을 발견했습니다.
in:imklog 462 518 root 7w REG 8,1 11199498620 1448243 /var/log/daemon.log (deleted)
99.999%의 시간 동안 다시 시작하면 이러한 파일이 해제된다는 것을 알고 있지만 이는 권장되지 않습니다.
가 아닌 파일을 삭제하면 logrotate
이 문제가 발생하여 문제가 해결될 것입니다. 그러나 제 질문은 재부팅하지 않고 보관된 파일을 해제하고 공간을 확보할 수 없다는 것입니다. 응, 어때?
미리 감사드립니다.
답변1
로그 파일을 열어 둘 수 있는 위치(아마도)에 다시 로드/다시 시작하거나 HUP
신호( )를 보냅니다 . 아마도 systemd를 실행 중일 것입니다.kill -1
rsyslogd
systemctl restart rsyslog.service
아니면 /etc/init.d/rsyslog restart
달리고 있는 경우 sysvinit
.
그러면 rsyslogd가 구성 파일을 다시 로드하고 모든 로그 파일을 닫았다가 다시 엽니다.
(참고: 대부분의 데몬에서 "reload"는 구성 파일을 다시 로드하거나 파일을 닫았다가 다시 열도록 하는 데 사용되는 키워드이고, "restart"는 중지했다가 시작하는 데 사용됩니다. 어떤 이유로 "restart"는 rsyslog 데몬에 HUP 신호를 보내 다시 로드를 트리거하기 위해 debian rsyslog 패키지와 함께 사용됨)
해당 로그 파일에 대한 열린 파일 핸들을 보유하는 프로세스가 없으면 사용 중인 공간이 해제됩니다.