У меня есть небольшой скрипт на python, в котором я отображаю изображения, записывая их во временный файл, вызывая eog для временного файла, а затем вызывая rm для временного файла после закрытия процесса eog. Соответствующий код выглядит в основном так:
os.popen('(eog --new-instance tmp.jpg; rm tmp.jpg)&')
Флаг --new-instance важен; без этого, если процесс eog уже существует, вызов eog просто сообщает уже существующему процессу eog отобразить tmp.jpg и сразу же возвращается. rm выполняется до того, как существующий процесс eog сможет открыть tmp.jpg. Затем происходит сбой ранее существовавшего процесса eog.
К сожалению, у меня нет полного контроля над некоторыми системами, на которых я использую этот скрипт. В некоторых из них установлена устаревшая версия eog, которая не поддерживает --new-instance, и я не хочу записывать пространство квот для создания локальной копии.
Есть ли какой-нибудь способ, которым я могу запустить eog таким образом, чтобы он не обнаруживал, есть ли другие экземпляры? Или есть другая надежная стратегия для отображения изображений в сложной программе просмотра (т. Е. Поддерживает масштабирование, панорамирование и т. Д.), Которая не загромождает мой каталог временными файлами?