我想从远程服务器运行 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
答案1
虽然使用 nohup 对于允许作业在交互式使用中继续超出会话很有用,但这并不适用于此处。该进程可能收到 HUP 的唯一原因是:
出了问题,生成的备份将毫无用处
主机正在关闭或进入维护模式
在这种情况下,您确实希望程序正常停止 - 所以我建议在这里包含“nohup”比多余更糟糕。它实际上对您的完整性/可用性构成了风险。