/proc/sys/vm/drop_caches를 생성할 수 없습니다: 권한이 거부되었습니다.

/proc/sys/vm/drop_caches를 생성할 수 없습니다: 권한이 거부되었습니다.

콜드 상태의 for 루프에서 psql의 일부 쿼리를 실행하려고 하기 때문에 Python을 사용하고 있습니다. 따라서 각 쿼리를 실행하기 전에 캐시를 지워야 합니다. os를 가져온 후 다음을 수행했습니다.

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

Python을 사용하여 캐시를 지우는 방법을 알고 있습니까?

우분투 20.04를 사용하고 있습니다.

답변1

쉘 대신 Python을 선택하는 이유는 무엇입니까? Python에서 쉘 명령을 실행하는 것은 의미가 없습니다. 정말로 Python을 사용하고 싶다면 이렇게 할 수 있습니다.

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

sudo스크립트 내에서 사용하는 대신 Python 스크립트를 실행하십시오 .

답변2

노력하다

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

관련 정보