Я пытаюсь запустить postgresql-9.5 при загрузке на CentOS 7.
Я выполнил шаги установки и запуска здесь https://wiki.postgresql.org/wiki/YUM_Installation И попробовали дополнительное устранение неполадок из этого вопроса здесь https://stackoverflow.com/questions/35492893/unable-to-start-postgresql-9-5-on-centos-7
Может быть важно, что я использую специальный каталог PGDATA, который является точкой монтирования. (/mnt/data
)
База данных была инициализирована, указывая на /mnt/data
каталог.
su postgres -c "/usr/pgsql-9.5/bin/pg_ctl initdb -D /mnt/data"
Я внес необходимые изменения в /usr/lib/systemd/system/postgresql-9.5.service
файл, чтобы указать на /mnt/data
каталог.
Служба была включена и успешно запущена.
systemctl enable postgresql-9.5
systemctl start postgresql-9.5
После перезагрузки systemctl status postgresql-9.5
показывает следующее:
● postgresql-9.5.service - PostgreSQL 9.5 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-9.5.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2016-04-06 00:53:02 EDT; 4min 36s ago Process: 9911 ExecStartPre=/usr/pgsql-9.5/bin/postgresql95-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE) Apr 06 00:53:02 pgdev-fl1 systemd[1]: Starting PostgreSQL 9.5 database server... Apr 06 00:53:02 pgdev-fl1 systemd[1]: postgresql-9.5.service: control process exited, code=exited status=1 Apr 06 00:53:02 pgdev-fl1 systemd[1]: Failed to start PostgreSQL 9.5 database server. Apr 06 00:53:02 pgdev-fl1 systemd[1]: Unit postgresql-9.5.service entered failed state. Apr 06 00:53:02 pgdev-fl1 systemd[1]: postgresql-9.5.service failed.
Однако я могу сразу бежать systemctl start postgresql-9.5
и он загружается нормально, используя /mnt/data
каталог.
Думая, что это может быть проблема времени, и он пытается запустить службу до того, как точка монтирования существует, я включил Requires=mnt-data.mount
в [Unit]
раздел /usr/lib/systemd/system/postgresql-9.5.service
, и повторно включил службу после systemctl daemon-reload
.
Тем не менее, он выдает то же сообщение при загрузке.
Бег /usr/pgsql-9.5/bin/postgresql95-check-db-dir ${PGDATA}
не генерирует никаких результатов для меня, поэтому я не понимаю, где продолжить устранение этой проблемы.
Любое руководство приветствуется!
Обновление - 06.04.16
После проверки journalctl
очевидно, что он пытается загрузить службу postgresql-9.5 до того, как том iSCSI будет смонтирован, даже если Requires
директива была включена.
После перечитывания https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files мне стало очевидно, что Requires
не ведет себя так, как я думал.
Изменение директивы на After
решил проблему и заставил службу postgresql-9.5 ждать, пока не станет доступна точка монтирования.
Requires
без After
попытается загрузить их одновременно.
Ты можешь использовать Requires
с участием After
чтобы подразумевать отношения зависимости.