2014-11-10 3 views
4

최근 사용자 정의 PGDATA 경로로 postgresql 서비스를 시작하는 문제가있었습니다. 기본 데이터 디렉토리 (/var/lib/pgsql/9.3/data/)에서 초기화를 시도하지 않았으므로 이러한 오류가 발생했습니다. 문제는 CentOS 7의 서비스 스타터가 PGDATA를 포함한 모든 환경 변수를 제거한다는 것입니다.Postgres 서비스를위한 Centos 7 환경 변수

Interesting thread on the issue

service postgresql-9.3 start 

사용자 정의 환경 변수를 사용하도록 구성 할 수있는 방법이 있나요? 이러한 변수를 정의해야하는 서비스에 대한 구성 파일이 있습니까?

미리 감사드립니다.

+0

이 링크가 말하는 일반적인 메커니즘은 서비스 초기화 파일이 실행될 때'/ etc/default/$ servicename'의 파일을 제공하고 거기에서 변수를 구성 할 수 있다는 것입니다. pgsql init 스크립트가 그렇게합니까? 네가 봐야할지 모르겠다. –

+0

나는 [grub nss useradd] 파일 만/etc/default/디렉토리 안에 가지고 있습니다. 해당 디렉토리 내에 특별한 postgresql-9.3 스크립트를 적절하게 만들어야합니까? –

+0

postgresql init.d 파일을 봐야합니다. '/ etc/default' 디렉토리에서 파일을 찾은 다음/etc와 같은 변수로 그 파일을 만듭니다. 너는 필요해. 'grep /etc/rc.d/init.d/postgresql-9.3/default'가 좋은 시작일 것입니다. –

답변

5

그래, 나에게 도움이되는 해결책이있다. /usr/lib/systemd/system/postgresql-9.3.service 및 PGDATA 변수에서 복사 한 내용

nano /etc/systemd/system/postgresql-9.3.service 

이 변경되었습니다. 그 다음

systemctl daemon-reload 

그리고 나는 정상적으로 서비스를 시작했다. 그리고 그것은 잘 동작했다. 트릭이이 서비스 구성 파일을 변경하고있었습니다.

+1

해킹과 같은 매우 우아한 해결책은 아니지만 작동합니다. –

10

위 답변을 주셔서 감사합니다. 오늘이 변경 사항을 적용했습니다. 당신은 /etc/systemd/system/postgresql-9.3.service에 다음을 바꾸어 PGDATA 변수를 또한 기본 설정을 유지 만 대체 할 수 있습니다 :이 의 변화를 재 통합의 필요성을 제거

# Include the default config: 
.include /lib/systemd/system/postgresql-9.3.service 

[Service] 
Environment=PGDATA=<your path here>/pgsql/9.3/data 

/usr/lib/systemd/system/postgresql-9.3.service으로 복사하십시오.

+0

이 솔루션은 원래 서비스 파일의 모든 변경 사항을 유지하므로 더 나은 대답입니다. –

+0

'systemctl daemon-reload'도 여기에 필요합니다. – robkub

+0

여기에 귀하의 경로는 무엇입니까? – Kannan