【发布时间】:2021-06-28 13:30:42
【问题描述】:
即使在中断脚本后我仍然保持零状态。
第一个脚本
#!/bin/bash
## call the backup script
/usr/local/bin/backup 2>&1 >/dev/null
echo $?
备份
#!/bin/bash
exitscript() {
rm -f $LOCKFILE
echo "Script Status: $1 | tee -a ${LOG}"
echo "> End Date: $(date +'%d.%m.%Y %H:%M:%S')" | tee -a ${LOG}
exit $1
}
######START#######
trap "exitscript 1" 1 2 23 24 25
rsync ${args} ${src} ${dest} | tee -a ${RSYNC_LOG}
retcode=${PIPESTATUS[0]}
if [[ ${retcode} -ne 0 ]]; then
exitcode=1
fi
exitscript ${exitcode:-0}
当第一个脚本运行时,它返回退出状态 0 尽管我试图在它结束之前终止备份脚本(为此我创建了一个非常大的文件,因此 rsync 需要时间来复制文件并且我有时间在脚本结束前杀死它)
ps -ef | grep -i backup
kill $PID
另一件事是,即使在杀死备份脚本之后,rsync 仍然运行。一旦脚本被杀死并且我的第一个脚本返回零状态代码,我希望 rsync 停止。 非常感谢任何建议。谢谢!
【问题讨论】:
标签: linux bash rsync kill exitstatus