我遵循了使用Brew在Mac OS X上安装Postgres的说明。一切都很好。我在Library/LaunchAgents
中放置了一个.plist,并在登录时运行了Postgres。但是,当我注销时,postgres关闭了(这对于用户Library/LaunchAgents
中的launchd启动的进程是正确的行为目录)。
我希望数据库一直为所有用户运行,因此我尝试将文件homebrew.mxcl.postgresql.plist移到目录/Library/LaunchDaemons
中。我将owner:group设置为root:wheel并设置权限。这没用,因为Postgres说它不会以root身份运行(在/usr/local/var/log
中的日志文件中报告)。因此,我为每个添加了一个UserName和GroupName作为_postgres。它不会运行,并且我认为存在权限问题,我收集到的是postgres以postgres身份运行,而postgres以_postgres:_postgres的user:group身份运行,无法读取/usr/local/var/postgres
或/usr/local/var/log
中的文件suser:group的sholland:admin(在我的userid holland和group admin下浏览安装的文件)。我在/Library/LaunchDaemons/homebrew.mxcl.postgresql.plist
中将UserName更改为sholland,将GroupName更改为admin,现在postgres以用户sholland group admin的身份每次重新启动时都运行得很愉快。
这一切都很好,但是我想在用户_postgres下运行Postgres。我想我可以在/ usr / local / var / log和/ usr / local / var / postgres中使用sudo chown _postgre:_postgres *
,但是我不知道如果走那条路是否还有其他问题。如果brew通过user:group _postgres:_postgres而不是在我的用户名和组admin下进行安装,这似乎会更加干净。
能够将homebrew.mxcl.postgresql.plist中的user:group设置为_postgres:_postgres的动机是,我将项目迁移到我医院的服务器上的linux系统上,我将使用Django运行该系统。我的胃肠道小组的报告生成器和患者跟踪系统。我需要在它自己的user:group下运行postgres,以在该环境中保留除我的个人userid以外的权限。
那么,如何在Mac OS X下让brrew在用户_postgres下安装postgres?