Вопрос рабочий, не праздный. Поэтому могу заплатить за консультацию.
У клиента машина, на машине VirtualBox, в нём Debian 8 с intranet-приложением (nginx+php+postgres), без подключения к Глобальной Сети (т.е. обновляю вручную, путём подмены виртуальных дисков, без замены диска с самими клиентскими данными)
То у него электричество отключают, то сам свою машину убивает - время от времени машинка неожиданно схлопывается вместе с виртуалкой.
Года два так оно и работало. Само поднималось. А последние пару месяцев Postgres перестал стартовать после таких сбоев. (Скорее всего, это может быть связанно с выросшим объёмом данных - не успевает теперь подняться и проверить всё, до того как systemd решит, что Postgres скис (мне так кажется))
Просто молчит.
Еду ногами к клиенту и запускаю руками /usr/lib/postgresql/9.4/bin/pg_ctl -D [путь] stop и (*) start - руками запускается. Через service start\stop - нет.
Поднадоело. И людям дискомфортно, и самому как на иголках.
Указывал в конфиге pg_ctl_option = '-w' (чтобы ожидало старта) - не помогает.
Самое непонятное - не могу повторить это поведение у себя на рабочей машине. У меня в любом случае нормальный старт - хоть из розетки выключай. Тот же VBox, тот же Debian и остальное - всё одинаковое (кроме самих данных). Получается, что у себя проблему не вижу, а у людей сидеть долго не могу, потому что эта машинка занята человеками.
У того же клиента рядом стоит железная машина cо старой AstraLinux (на Debian 7) - она тоже нормально стартует после неожиданных отключений.
Переехать в нормальный ДЦ не хотят (не могут), выделить средства на еще одну железную машинку тоже не хотят (не могут).
Это должно быть что-то про таймауты/systemd/ожидание/перезапуск/чистка хвостов от прошлого запуска. Как правильно сконфигурировать запуск Postgres, подразумевая возможные нештатные остановки?