tl;dr - на Ubuntu 16.04 если вы не подшаманите logind.conf, ssh в пользователя 'postgres' убьет базу данных.
https://lists.freedesktop.org/archives/systemd-devel/2014-April/018373.html
Каменты жгут, я переведу только оппост для Ъ:
В Systemd 212 новые дефолты удаляют IPC (включая память SYSV), когда пользователь «полностью» вылогинивается. Яко опция RemoveIPC=yes
Т.е. сервис postgresql service - не логин, если вы ssh'итесь в постгрес (например чтобы rsync'нуть wal файлы) и потом вылогиниваетесь, Systemd удоляет всю постгресовскую SYSV память, шта тут же приводит к чудным ошибкам типа:
FATAL: semop(id=92307463) failed: Invalid argument
CONTEXT: xlog redo insert: rel 1663/16414/112697213; tid 1319269/129
LOG: background writer process (PID 24589) exited with exit code 1
LOG: terminating any other active server processes
LOG: all server processes terminated; reinitializing
LOG: semctl(119406593, 0, IPC_RMID, ...) failed: Invalid argument
Приходит на ум простейший фикс на postgresql.service:
PAMname=systemd-login
Но сие не выйдет по двум причинам: 1) оно не подхватывается logind (в логах не появляется ничего типа «Started User Manager for UID 88», как это происходит при заходе по ssh) 2) как только pg_ctl останавливается, сессия закрывается. (pg_ctl запускает postgres в фоне)