자바의 유서깊은(?) 골칫거리로, 자바에서 fork() + exec() 하는 방식에 문제가 있기 때문이다.
(자세한 내용은 여기를 참고하면 좋다.)
위 링크에서 4가지 해결책이 나온다.
닥치고 메모리 증설
fork() 호출시 swapfile을 추가하도록 꼼수 사용
리눅스: sysctl의 vm.overcommit_memory 속성을 1로 설정
POSIX 호환 시스템: fork() + exec() 대신 posix_spawn() 사용하기
리눅스라면 vm.overcommit_memory=1 이 아무래도 빠르고 편하겠지만, 동작방식이 후덜덜하므로 overcommit이 일어날 때 커널에서 노는 메모리를 수거하는데, 이 때 어떠한 확인도 없이 막무가내로 수거하므로 잠자고 있는 멀쩡한 다른 프로세스의 메모리를 수거할...
2013-11-04
2013-11-01
bash로 git의 빈 디렉토리 컨트롤하기
(2014-11-19: 좀 더 깔끔하게 수정)
git의 유일한 단점은 빈 디렉토리를 관리 할 수 없다는 것이다. 따라서 빈 디렉토리를 강제로 관리하려면 대충 아무 파일이나 던져놓는 수 밖에 없다.
MarkEmptyDirs라는 툴이 있기는 하지만, 깔기 귀찮다. 그냥 bash 있는거 쓰고 말지…
본문
find . -name ".emptydir" -delete; find -empty -type d | while read x; do touch "$x/.emptydir"; done
참 쉽죠?
주의: 이 스크립트에는 버그가 있지만 여백이 부족하므로 더 이상의 자세한 설명은 생략한다. 차마 귀찮아서라고는 못하겠다. 예제를 수정하면서 더이상은 naver!
해설
먼저 하위 디렉토리에서 .emptydir...