Как красиво остановить все процессы postgres

Это безопасно для:

sudo pkill -u postgres

Это убивает все процессы, запущенные от имени пользователя postgres. Или:

pkill postgres

Это убивает все процессы с именем "postgres".

Делать нет использовать kill -9 (kill -KILL). Просто kill (без вариантов) выполняет SIGTERM, а это именно то, чего ты хочешь.

Кроме того, вы можете проверить местоположение pgdata, если вы можете подключиться к PostgreSQL. Например:

sudo -u postgres psql -c "SHOW data_directory";

...или путем проверки его переменных окружения в /proc/[pid почтмейстера]/около, где вы отождествляете почтмейстера с ps -fHC postgres. Ищите тот, который является родителем другого. postgres процессы. Например:

postgres   794     1  0 Nov06 ?        00:00:03 /usr/pgsql-9.3/bin/postgres -D /var/lib/pgsql/9.3/data -p 5432postgres   857   794  0 Nov06 ?        00:00:00   postgres: logger process   postgres   871   794  0 Nov06 ?        00:00:00   postgres: checkpointer process   postgres   872   794  0 Nov06 ?        00:00:00   postgres: writer process   postgres   873   794  0 Nov06 ?        00:00:00   postgres: wal writer process   postgres   874   794  0 Nov06 ?        00:00:03   postgres: autovacuum launcher process   postgres   875   794  0 Nov06 ?        00:00:07   postgres: stats collector process   

Его datadir обычно отображается в командной строке.