systemd
foi projetado para lidar com esse caso de maneira limpa. Você pode fazer isso criando um pequeno arquivo que especifica um comando que você deseja executar como parte da interrupção do serviço PostgreSQL. Primeiro, crie um diretório chamado:
/etc/systemd/system/postgresql.d/
Nele, crie um arquivo com qualquer nome que termine em .conf
, como custom-shutdown.conf
. Adicione a esse arquivo algumas linhas como esta:
[Service]
ExecStop=/usr/bin/su - postgres -c "/opt/postgres-95/bin/pg_ctl -D /database/inst1/data -w stop &"
Você pode querer usar ExecStopPost=
dependendo do seu caso.
Veja documentos oficiais para Estendendo a configuração padrão e também os documentos oficiais para o ExecStop=
e ExecStopPost=
.