나는 임시 파일에 그들을 쓰고, 임시 파일에 eog를 호출 한 다음 이미지가 닫힌 후 임시 파일에 rm을 호출하여 이미지를 표시하는 작은 파이썬 스크립트를 가지고있다. 관련 코드는 기본적으로 다음과 같습니다.이전 버전의 eog를 강제로 새 인스턴스에서 실행하는 방법?
os.popen('(eog --new-instance tmp.jpg; rm tmp.jpg)&')
--new-instance 플래그는 중요합니다. 그것없이, 이미 eog 프로세스가 있다면, eog 호출은 기존의 eog 프로세스에 tmp.jpg를 표시하고 즉시 리턴한다고 알려줍니다. rm은 선재 프로세스가 tmp.jpg를 열 수 있기 전에 실행됩니다. 선재 프로세스가 충돌합니다.
불행히도이 스크립트를 사용하는 일부 시스템을 완벽하게 제어 할 수는 없습니다. 그들 중 일부는 --new-instance를 지원하지 않는 오래된 버전의 eog가 설치되어 있으며 로컬 복사본을 작성하기 위해 할당량 공간을 소진하고 싶지 않습니다.
다른 인스턴스가 있는지 감지하지 못하도록 어록을 시작할 수있는 방법이 있습니까? 또는 정교한 뷰어 (즉, 확대/축소, 패닝 등을 지원하는)에서 이미지를 표시하는 또 다른 신뢰할 수있는 전략이 내 디렉터리를 임시 파일로 복잡하게 만들지는 않습니까?