nohupスクリプト内でatで始まる

nohupスクリプト内でatで始まる

リモートサーバーでpostgresダンプを実行しようとするのに数時間かかります。これを実行して開始するには、ターゲットでbashスクリプトを使用します。at

これで問題が発生した場合に備えて使用しますが、nohupこれを行う必要があるか(起動スクリプトを使用するためat)、コマンドで直接使用する方が良いか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」を含めることは重複するよりも悪いです。これは実際に完全性/可用性に危険をもたらします。

関連情報