我有一个github项目可供其他人使用。其中一个脚本update.py
每天检查github(通过cron)以查看是否有更新的版本。
在本地,脚本位于目录/home/user/.Project/update.py
如果github上的版本较新,那么update.py
将/home/user/.Project/
移动到/home/user/.OldProject/
,克隆github仓库并将下载的仓库移动/重命名为/home/user/.Project/
它对我来说完美地工作了五次,但我刚刚意识到脚本在它仍在运行时正在移动。对这种方法有任何无法预料的后果,还有更好的方法吗?
答案 0 :(得分:2)
只要脚本使用的所有代码都已编译并加载到Python VM中,源移动就没有问题,因为它将保留在内存中,直到进程结束或被替换(或换出) ,但由于它被认为是脏数据,它将完全相同地交换)。但是,如果在此过程中任何文件仍处于打开状态,操作系统可能会尝试阻止移动操作。