如何设置服务在启动时以非用户身份运行?

如何设置服务在启动时以非用户身份运行?

我有一个 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

相关内容