Как установить Postgres для запуска в качестве демона под именем пользователя _postgres в Mac OSX? - PullRequest
0 голосов
/ 19 ноября 2018

Я следовал инструкциям по установке 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 для user: group (заваривать установленные файлы под моим именем пользователя и администратором группы). Я изменил UserName на sholland и GroupName на 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 выполнил установку с user: group _postgres: _postgres вместо моего имени пользователя и группы admin.

Мотивация, чтобы иметь возможность установить user: group в homebrew.mxcl.postgresql.plist на _postgres: _postgres, заключается в том, что я буду переносить проект в систему linux на сервере в моей больнице, где я буду использовать Django для запуска генератор отчетов и система отслеживания пациентов для моей группы GI. Мне нужно будет запустить postgres под своей собственной группой user: group, чтобы сохранить права доступа, отличные от моего личного ИД пользователя в этой среде.

Итак, как получить brew для установки postgres под пользователем _postgres под Mac OS X?

...