시작 시 사용자가 아닌 사용자로 서비스가 실행되도록 설정하려면 어떻게 해야 합니까?

시작 시 사용자가 아닌 사용자로 서비스가 실행되도록 설정하려면 어떻게 해야 합니까?

PostgreSQL 서버가 있고 로그인 후 로그인할 때 명령줄에서 시작합니다. 이는 일반 PostgreSQL 서비스로 실행되지 않고 나를 대신하여 실행되며 데이터는 내 홈 디렉터리에 저장되고 다른 포트에서 실행됩니다.

예를 들어, 서버가 다시 시작될 때 내 사용자 권한으로 서버를 시작하려면 어떻게 해야 합니까?

내가 일반적으로 시작하는 명령은 다음과 같습니다.

cd ~/pgdata01 && /usr/lib/postgresql/9.4/bin/postgres -D /home/user/pgdata01/data -c config_file=/home/user/pgdata01/config/postgresql.conf

답변1

postgresql 단위 파일을 복사합니다.

cp /usr/lib/systemd/system/postgresql.service \
   /etc/systemd/system/postgresql-userxy.service

그런 다음 postgresql-userxy.service를 편집하고 섹션 에 User=및를 추가합니다 . 그런 다음 서비스를 활성화합니다.WorkingDirectory=[Service]

systemctl daemon-reload
systemctl enable postgresql-userxy.service

관련 정보