프로그래밍/Linux

[Ubuntu] Service log 파일 경로 변경

Beginner:) 2024. 9. 21.
320x100

먼저 나의 환경은 Ubuntu 18.04이다.

 

나의 서비스명은 park-duck-backend.service로 가정한다.

 

Service를 등록하고 StandardOutput=append:[path]로 설정하였지만, 로그를 기록하지 않았다.

 

로그를 파일로 기록하도록 설정해보자.

 


 

먼저 알아보아야 할 것은

 

1. journalctl 확인

아래 명령어를 실행해보면 분명 뭔가를 기록하고 있다. 그러므로 log가 실행되지 않는 것은 아니다.

journalctl -u park-duck-page-backend.service -f

 

만약 실행이 되지 않는다면 아래의 명령어를 통하여 StandardOutput의 설정값을 확인해보자.

journal이 아니라면 다른 곳에 메시지로그를 쌓고 있을 수도 있다.

sudo systemctl show park-duck-page-backend.service | grep StandardOutput

 

2. file권한 확인

아래 명령어를 통해 쓰기 권한이 있는지 확인.

ls -al

 

3. redirection 확인

나의 경우 해결된 방법인데,

원래라면 "StandardOutput=append:[path]"로 journal의 메시지 기록이 redirection되어야하지만 OS가 오래되어서 그런지 append가 실행이 되지 않을 때가 있다. (다른 OS버전을 확인하진 못했다)

 

그러면 이 출력을 journal이 아닌 file로 변경하는 방법이 있다.

"StandardOutput=file:[path]"로 변경하면된다.

ex)

 

이렇게 하면 Service에 대한 로그 관리를 journal이 아닌 file로 바꾸는 것이기 때문에 journal에는 메시지 로그가 남지 않는다.

StandardOutput 설정값 또한 file로 변경된다

 

반응형

댓글