원격 서버에서 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를 받을 수 있는 유일한 이유는 다음과 같습니다.
문제가 발생하여 결과 백업이 쓸모 없게 됩니다.
호스트가 종료 중이거나 유지 관리 모드로 전환 중입니다.
이 경우 프로그램이 정상적으로 중지되기를 정말로 원하므로 여기에 "nohup"을 포함시키는 것이 중복되는 것보다 나쁩니다. 이는 실제로 무결성/가용성에 위험을 초래합니다.