我想从远程服务器运行 postgres 转储,这需要几个小时。我在目标上使用 bash 脚本来执行此操作并使用at
现在,为了防止出现问题,我使用nohup
,但我不确定是否需要这样做(因为用 启动脚本at
)以及直接在命令中使用 in pg_dump
(见下文)还是启动脚本并nohup
在命令本身中跳过它。
当前脚本中的命令是:
nohup nice pg_dump -h ${SOURCE} -d ${DB_NAME} -U ${DB_USER} -v -Fd -j 2 \
-f ${DUMPDIR}/${DUMPFILE}_"${NOW}" > ${DUMPDIR}/${DUMPFILE}_"${NOW}".out
虽然使用 nohup 对于允许作业在交互式使用中继续超出您的会话很有用,但这并不适用于此。该进程可能收到 HUP 的唯一原因是:
出了点问题,正在生成的备份将没有用
主机正在关闭或进入维护模式
在这种情况下,您确实希望程序正常停止 - 所以我建议在此处包含“nohup”比冗余更糟糕。它实际上对您的完整性/可用性构成风险。