Просто обновил мою систему с 14.04. LTS до 16.04.1 LTS, postgresql не запускается на systemd:
/etc/init.d/postgresql start
[ ok ] Starting postgresql (via systemctl): postgresql.service
# /etc/init.d/postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Вт 2016-08-09 13:40:51 MSK; 3min 23s ago
Process: 23142 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 23142 (code=exited, status=0/SUCCESS)Seems that
Кажется, что скрипт systemd содержит неверные данные:
# cat /lib/systemd/system/postgresql.service
# systemd service for managing all PostgreSQL clusters on the system. This
# service is actually a systemd target, but we are using a service since
# targets cannot be reloaded.
[Unit]
Description=PostgreSQL RDBMS
[Service]
Type=oneshot
ExecStart=/bin/true
ExecReload=/bin/true
RemainAfterExit=on
[Install]
WantedBy=multi-user.target
Какой должен быть правильный скрипт для postgresql?
16.04
systemd
postgresql
Артур Эшенбренер
источник
источник
systemctl enable postgresql@9.5-main
это все, что тебе нужно.systemctl edit postgresql@9.6-main
для создания файла переопределения с такими директивами systemd, как: [Service] Nice = 15 IOSchedulingClass = 2 IOSchedulingPriority = 7Systemd должен использовать скрипт из
/etc/init.d
. Вместо этого systemd использует некоторый файл шаблона. Чтобы это исправить, выполните следующие действия:Удалить недопустимый служебный скрипт:
# rm /lib/systemd/system/postgresql.service
Перезагрузить скрипты демона:
# systemctl daemon-reload
Включить службу postgresql:
# systemctl enable postgresql
После этого, вы могли бы начать Postgres с любыми предпочтительными вариантами:
sudo systemctl start postgresql
,sudo service postgresql start
илиsudo /etc/init.d/postgresql start
. Для того, чтобы проверить , что на самом деле запуск PostgreSQL, пожалуйста , проверьте состояние службы:sudo systemctl status postgresql
. Это должно выглядеть так:источник
systemctl _action_ postgresql@_version_
У меня была такая же проблема после чистки postges9 и я установил 10 на мою ubuntu16. Сначала я отредактировал файл /lib/systemd/system/postgresql.service со следующим содержимым:
И я могу использовать systemctl restart / stop / start для управления сервисом postgresql. Однако по какой-то причине указанный выше файл был перезаписан (возможно, после обновления системы), и я больше не мог запускать команду systemctl для запуска и остановки сервера postgresql. После некоторого прочтения я понял, что вы не должны редактировать вышеуказанный файл. Вместо этого вы должны использовать systemctl edit foo, чтобы перезаписать значения по умолчанию. После решения, предложенного по следующей ссылке, моя система, похоже, работает должным образом с postgresql.
Как переопределить или настроить службы systemd?
источник
Не самое лучшее решение, но это решает проблему, не углубляясь ни во что. Добавьте это в cron:
источник