Desejo executar um despejo postgres de um servidor remoto, o que levará algumas horas. Estou usando um script bash no destino para fazer isso e iniciá-lo comat
Agora, para evitar que as coisas quebrem eu uso nohup
, mas não tenho certeza se isso é necessário (devido a iniciar o script com at
) e se seria melhor usar in no pg_dump
comando diretamente (veja abaixo) ou iniciar o script nohup
e pule-o no próprio comando.
comando no script atualmente é:
nohup nice pg_dump -h ${SOURCE} -d ${DB_NAME} -U ${DB_USER} -v -Fd -j 2 \
-f ${DUMPDIR}/${DUMPFILE}_"${NOW}" > ${DUMPDIR}/${DUMPFILE}_"${NOW}".out
Embora o uso de nohup seja útil para permitir que um trabalho continue além de sua sessão em uso interativo, isso não se aplica aqui. A única razão pela qual o processo provavelmente receberá um HUP é porque:
Algo deu errado e o backup que está sendo gerado será inútil
O host está desligando ou entrando no modo de manutenção
Nesses casos, você realmente deseja que o programa pare normalmente - então, sugiro que incluir 'nohup' aqui seja pior do que redundante. Na verdade, representa um risco para sua integridade/disponibilidade.