springboot 프로젝트 에서 nohup.out 로 그 를 출력 하지 않 는 해결

springboot 에서 nohup.out 로 그 를 출력 하지 않 습 니 다.

nohup java -jar mgcr_pc-0.0.1-SNAPSHOT.war >/dev/null 2>log & 
메모:이 log 는 파일 입 니 다.마음대로 이름 을 지 을 수 있 습 니 다.
ps aux|grep 방금 실행 한 가방 이름.jar
그리고 스 레 드 id 가 표 시 됩 니 다.
5555 와 같은 프로 세 스 닫 기
kill -9 5555
nohup 시작 후,nohup.out 너무 큰 해결
보통 바 이 두 는 다음 과 같이 말한다.
cp /dev/null nohup.out
cat /dev/null nohup.out
Liux 의 파일 관 리 는 인용 계수 이기 때문에 그 파일 을 간단하게 삭제 할 수 없습니다.
nohup 로 그 를 비 울 수 있 습 니 다.사실은 시작 할 때의 스 트림 입력 방식 이 관건 입 니 다.>방식 을 사용 하면 위 와 같은 방법 으로 작업 한 후 다시 기록 할 때 파일 은 원래 의 크기 로 바 뀌 고>>추가 방식 을 사용 하면 파일 의 크기 를 제거 할 수 있 습 니 다.
원인 에 대한 기본 설명 은 다음 과 같다.
Liux 의 파일 관 리 는 fd 를 사용 합 니 다.사용 자 는 3 이상(3 포함)의 파일 을 사용자 정의 할 수 있 고 0,1,2 는 3 개의 표준 흐름 에 대응 합 니 다.
표준 입력 흐름 stdin표준 출력 흐름 stdout표준 오류 흐름 stderr셸 이>를 읽 었 을 때 파일 이 존재 하 는 지 판단 하고 존재 하지 않 으 면 파일 을 만 든 다음 w 방식 으로 기록 하면 파일 포인터 가 뒤로 만 증가 합 니 다.
따라서 사용>nohup 의 방향 을 바 꿀 때 파일 포인터 가 뒤로 늘 어 납 니 다.상기 두 명령 을 사용 하여 nohup.out 을 조작 할 때 전체 파일 을 다시 썼 습 니 다.그러나 프로그램의 다음 출력 시 파일 의 크기 가 다시 원래 크기 로 바 뀌 었 습 니 다.이것 은 정상 적 입 니 다.파일 의 포인터 가 원래 크기 의 위치 에 있 기 때문에 기록 작업 을 할 때,포인터 가'출력 내용 의 크기'를 뒤로 이동 시 키 고'출력 내용'을 기록 합 니 다.이 때 파일 은 원래 의 크기 로 다시 돌아 가 야 합 니 다.비록 원래 의 내용 이 보이 지 않 지만(이 때 그 내용 을 0 으로 채 우 고 비슷 한 동작 을 한 번 한 번 한 다음 에 nohup 파일 의 16 진법 표 시 를 보면 모두 0x 00 이 고 파일 구멍 이 라 고 할 수 있 습 니 다)
>>방식 으로 파일 을 쓸 때 a+방식 으로 파일 을 기록 합 니 다.파일 포인터 가 파일 의 끝 문자 EOF 위 치 를 가리 키 고 있 습 니 다.
위 두 명령 을 사용 하여 nohup.out 을 조작 할 때 파일 의 끝 자 는 0x 00 주소 로 되 돌아 간 것 이 확실 하기 때문에 원래 의 내용 을 비 울 수 있 고 파일 의 구멍 을 만 들 지 않 습 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기