gpt4 book ai didi

python - 在 Python 中调用 os.unlink(__file__) 是否安全?

转载 作者:可可西里 更新时间:2023-11-01 11:50:31 25 4
gpt4 key购买 nike

我在 Linux 上使用 Python 2.6。

我有一个 run.py 脚本,它在后台启动多个服务并生成 kill.py 来终止这些进程。

在 kill.py 内部,完成其工作后取消链接是否安全?

import os
# kill services
os.unlink(__file__)
# is it safe to do something here?

我是 Python 新手。我担心的是,由于 Python 是一种脚本语言,整个脚本可能不在内存中。取消链接后,将没有进一步的代码可以解释。

我尝试了这个小测试。

import os
import time
time.sleep(10) # sleep 1
os.unlink(__file__)
time.sleep(10) # sleep 2

我在运行此文件时运行了 stat kill.py 并且链接数始终为 1,所以我猜 Python 解释器不保存指向该文件的链接。

作为一个更高层次的问题,创建进程列表的常用方法是什么,以便稍后轻松终止?

最佳答案

如果可以避免,不要让您的脚本编写新脚本——只需写出 PID 列表,然后通过它们。不太清楚您要做什么,但创建和删除脚本听起来太脆弱了。

回答问题:Python 会编译所有源代码并在执行前关闭文件,因此这是安全的。

一般来说,取消链接打开的文件在 Linux 上是安全的。 (但并非无处不在:在 Windows 上,您无法删除正在使用的文件。)

请注意,当您导入 一个模块时,Python 2 会将其编译成.pyc 字节码文件并对其进行解释。如果删除 .py 文件,Python 仍将使用 .pyc,反之亦然。

关于python - 在 Python 中调用 os.unlink(__file__) 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8333658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com