![无法创建 /proc/sys/vm/drop_caches:权限被拒绝](https://linux22.com/image/188770/%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%20%2Fproc%2Fsys%2Fvm%2Fdrop_caches%EF%BC%9A%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
我使用 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')