forground, background
명령어는 아래와 같다.
Start foreground running
% postgres -D $PG/data
Start background running
% pg_ctl -D $PG/data -l logfile start
DB 를 start 하고 나면 ps 명령어를 통해,
postgres 프로세스가 실행되어 있는걸 확인할 수 있다.
DB 를 중지시키는 명령어는 아래와 같다.
Stop
% pg_ctl -D $PG/data stop
그런데 여기서 잠깐.
DB 를 foreground 로 실행시키는 경우가 있나? 라고 의문이 들 수 있다.
foreground 를 실행시킨 session 이 끊기면 DB 도 정지할텐데.
사실 DB 의 역할은 background 에서 안 보이는 곳에서 활동하면서
client 의 요청을 처리해주는게 주된 임무라고 생각하기 때문이다.
맞는 말이다.
평소에는 사용할 일이 없을 것......이다.
(아마도? 다른 뭐 필요한 경우가 있을 수도 있겠지.....)
그럼 어떨 때 사용하냐?
바로 debugging 할 때, 사용한다. (지극히 내 개인적인 경우)
물론 이미 실행되어 있는 프로세스에 gdb 를 attach 해서 사용할 수는 있겠지만.
실행 단계에서부터 디버깅이 필요하거나,
그냥 습관적으로 gdb 로 시작을 하거나.
이럴 때 사용하면 된다.
※ postgres 를 사용해서 foreground 로 실행시키면, 화면에 로그가 출력되는데,
pg_ctl 의 -l 옵션이 그 내용을 파일로 저장해 주는 역할을 한다.
화면에 출력되는 내용이 logfile 내용과 같은걸 확인할 수 있다.
https://www.postgresql.org/docs/current/static/server-start.html
https://tedwon.atlassian.net/wiki/spaces/SE/pages/1212988/PostgreSQL
댓글 없음:
댓글 쓰기