无法创建 /proc/sys/vm/drop_caches:权限被拒绝

无法创建 /proc/sys/vm/drop_caches:权限被拒绝

我使用 python 是因为我尝试在 for 循环中以冷状态从 psql 运行一些查询。因此,在执行每个查询之前,我的缓存必须是清除的。我导入了 os,然后执行了以下操作:

if state=="cold"
     os.system('sudo sh -c  "/usr/bin/echo 1 > /proc/sys/vm/drop_caches')

你知道我如何使用 python 清除缓存吗?

我使用的是ubuntu 20.04。

答案1

为什么选择 Python 而不是 shell?在 python 中运行 shell 命令并没有什么意义,如果你真的想使用 Python,你可以这样做

with open("/proc/sys/vm/drop_caches", "w") as f:
    f.write("1")

并运行 python 脚本,而sudo不是尝试在脚本内使用它。

答案2

尝试

os.system('echo 1 | sudo tee /proc/sys/vm/drop_caches')

相关内容