删除文件后,Python程序仍在运行

时间:2017-09-18 11:02:50

标签: python

听起来应该是愚蠢的。但这是我的情景。

我有一个 python-flask 网站,该网站是使用nohup直播的。现在,即使我删除了__pycache__中的所有文件和原始.py文件,程序仍在运行,没有任何错误。那么它从何而来?是否在其他地方创建了任何文件缓存?

注意:我知道我可以杀死这个过程,但只是想知道这个问题

2 个答案:

答案 0 :(得分:1)

只要一个进程打开了一个文件,该文件就可以继续使用该进程。没有其他进程可以打开它,并且使用普通的OS实用程序(例如ls)无法看到它的存在。

对于Python,我认为脚本的编译版本仍然在内存中。从文件系统中删除它不会改变它。

所以你的烧瓶应用程序在它终止之前不受影响,此时驻留内存将被释放,并且操作系统将删除它保持打开的所有文件。

答案 1 :(得分:1)

  

那么它从哪里开始?

它从内存运行。一旦你的程序被编译成字节代码(或者字节代码已经从.pyc文件加载),它就被运送到Python虚拟机执行,原始源文件被关闭。删除它不会影响运行过程。