
systemd
Ubuntu 20.04에는 다음을 지정한 간단한 서비스가 있습니다 .StandardOutput=file:/var/log/appname/console.log
서비스를 처음 시작하면 파일이 생성되고 파일에 애플리케이션의 출력이 표시됩니다. 그러나 파일은 한 번만 기록됩니다. 서비스를 다시 시작하면 응용 프로그램이 실행 중이더라도 파일에 아무 것도 기록되지 않습니다. 파일을 삭제하고 서비스를 다시 시작하면 파일이 다시 나타나는데, 또 한 번만 기록됩니다.
왜 이런 일이 발생합니까? 다른 형태의 표준 출력 리디렉션을 사용해야 합니까?
답변1
Ubuntu 20.04에서도 동일한 문제가 발생했지만 내용은 실제로 파일 시작 부분에 작성되어 명령에 보이지 않게 되었습니다 tail
. @steeldriver가 지적했듯이 이 동작은 예상되며 문서에 설명되어 있습니다.
이 문제는 여기에서도 논의됩니다.https://github.com/systemd/systemd/issues/8983
해결책게시일: 2021년 3월 30일 version 248
:
truncate:path
위와 유사file:path
하지만 파일을 열 때 파일이 잘립니다.
해결책:
ExecStartPre=/usr/bin/truncate --size=0 FILEPATH
참고자료: