脚本内的 nohup,以 at 开头

脚本内的 nohup,以 at 开头

我想从远程服务器运行 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 的唯一原因是:

  1. 出了问题,生成的备份将毫无用处

  2. 主机正在关闭或进入维护模式

在这种情况下,您确实希望程序正常停止 - 所以我建议在这里包含“nohup”比多余更糟糕。它实际上对您的完整性/可用性构成了风险。

相关内容