Порядок открытия документов в Nautilus

Что касается возможных стратегий отладки, вот мой совет:

Протестируйте диск, загрузившись с живого носителя Linux. Если диск только для чтения, это плохой симптом повреждения носителя. Если вам (очень) не повезло, у вас есть ошибки секторов жесткого диска, однако тот факт, что вы говорите нам, что образ vmware был получен с разбитой машины, может означать, что просто базовый образ VM/vmdk поврежден, или, что еще хуже, повреждены двоичные файлы.

Я бы перенес/переустановил на другую машину без использования механизмов импорта/экспорта vmware, и без копирования vmdk если я не могу найти дефекты физического диска (в хосте vmware).

Что касается журналов файлов, то они теряют смысл, как только ядро активирует монтирование только для чтения для защиты целостности данных. Перенаправьте ошибки syslog на другой syslog сервер и на другую виртуальную консоль (некоторые дистрибутивы перенаправляют журналы на виртуальную консоль по умолчанию). Если повезет, вы сможете увидеть журнал ошибок, дающий ключ к разгадке причины.

Все еще о журналах, вы не упомянули журналы vmware. Если есть дефекты физического диска, они появятся в журналах vmware - ведь виртуальная машина видит только образ виртуального диска, созданный гипервизором vmware. Зайдите в консоль терминала vmware и посмотрите их. Если возможно, перенаправьте журналы vmware также на другой сервер syslog, чтобы регулярно их просматривать.

Что касается постоянного обслуживания, то хорошей практикой является установка SNMP-агентов и использование cacti, observium или любого другого удобного вам инструмента для получения базовых данных о регулярном использовании ресурсов. Это также может пригодиться в случае возникновения проблем, а также может посылать вам автоматические предупреждения.

3
11.03.2016, 21:12
2 ответа

Они открыты параллельно. nautilus породит столько же процессов (порядок здесь не имеет значения), и каждый из этих процессов выполнит вашу программу просмотра PDF с одним из файлов в качестве аргумента.

Все эти программы просмотра PDF будут работать независимо, загружать общие библиотеки, открывать свои собственные PDF-файлы, подключаться к X-серверу и в какой-то момент попросят X-сервер отобразить окно. Кто из них сделает это первым, вы не можете контролировать.

Чтобы гарантировать порядок, вам понадобится сотрудничество с менеджером Windows. Вам нужно, чтобы nautilus попросил диспетчер окон сообщить ему, когда окно первой программы просмотра PDF появится, прежде чем запускать следующую.

Сделать это надежно для любого приложения непросто. nautilus знает только pid процесса, который он породил для выполнения программы просмотра PDF. Не все приложения сообщают менеджеру окон свой pid, а если и сообщают, то это может быть pid дочернего процесса, порожденного nautilus (как в случае сценария оболочки), или он может вообще не создавать окно...

2
27.01.2020, 21:22

Если это не порядок, в котором файлы были выбраны в Nautilus, я предполагаю, что порядок может быть определен либо физическим порядком записей в каталоге (проверьте с помощью ls -lU), либо датой файлов (ls -lt).

Но если порядок не является детерминированным (отличается при каждой попытке), это может быть просто время, необходимое процессу(ам) просмотра для открытия, чтения и отображения содержимого, в зависимости от планировщиков процессов и ввода-вывода.

Чтобы заставить порядок быть детерминированным, вы можете либо изменить физический порядок/время файла, если это определяющий фактор. Или создать скрипт, который сделает это, взяв список файлов из Nautilus и используя sort, for и, возможно, sleep или какой-то wait-for-process-started механизм, и добавить его в качестве альтернативы приложениям, предоставляемым Nautilus для данного типа(ов) MIME. Второй вариант, вероятно, более надежен.

1
27.01.2020, 21:22

Теги

Похожие вопросы