Как установить Postgres для запуска в качестве демона под именем пользователя _postgres в Mac OSX?
Я следовал инструкциям по установке Postgres на Mac OS X с помощью Brew. Все работало хорошо. Я разместил.plist в моем Library/LaunchAgents
и у меня был запущен Postgres, когда я вошел в систему. Однако, когда я вышел из системы, postgres закрывается (что является правильным поведением для процессов, запускаемых launchd, которые находятся в Library/LaunchAgents
каталог).
Я хотел, чтобы база данных работала все время для всех пользователей, поэтому я попытался переместить мой файл homebrew.mxcl.postgresql.plist в каталог /Library/LaunchDaemons
, Я установил владельца: группу в корень: колесо и также установить права. Это не сработало, так как Postgres сказал, что он не будет работать от имени пользователя root (сообщается в файле журнала в /usr/local/var/log
). Поэтому я добавил имя пользователя и имя группы, чтобы они были _postgres для каждого. Он не запускается, и я полагаю, что были проблемы с разрешениями, которые, как я понимаю, заключаются в том, что postgres работает как postgres как пользователь: группа _postgres:_postgres не может читать файлы в /usr/local/var/postgres
или же /usr/local/var/log
которые все sholland:admin для пользователя:group (заварите установленные файлы под моим идентификатором пользователя holland и group admin). Я изменил имя пользователя на sholland и имя группы на admin в /Library/LaunchDaemons/homebrew.mxcl.postgresql.plist
, и теперь postgres работает успешно каждый перезапуск от имени пользователя sholland group admin.
Это все хорошо, но я бы хотел запустить Postgres под пользователем _postgres. Я думаю, я мог бы использовать sudo chown _postgre:_postgres *
в /usr/local/var/log и /usr/local/var/postgres, но я не знаю, есть ли другие проблемы, если я пойду по этому пути. Кажется, что все было бы чище, если бы brew выполнил установку с пользователем:group _postgres:_postgres вместо моего имени пользователя и группы admin.
Мотивация, чтобы иметь возможность установить user:group в homebrew.mxcl.postgresql.plist на _postgres:_postgres, заключается в том, что я буду переносить проект в систему linux на сервере в моей больнице, где я буду использовать Django для запуска генератора отчетов. и система отслеживания пациентов для моей группы GI. Мне нужно будет запустить postgres под своей собственной группой user:group, чтобы сохранить права доступа, отличные от моего личного ИД пользователя в этой среде.
Итак, как получить brew для установки postgres под пользователем _postgres под Mac OS X?