Показать статистику
0 голосов
от (2.7тыс. баллов)

я открываю файл pdf с помощью командной строки в Ubuntu, запустив

xdg-open 123.pdf

PDF отображается в PDF-ридере, который установлен по умолчанию.

Подскажите  каким образом я могу закрыть это средство просмотра PDF из командной строки в Ubuntu?

339 просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

Используйте эту команду

fuser -k -TERM FILE

Замените FILE на имя файла, о котором идет речь.

Рассмотрим подробнее

Предполагая, что файл, который вы открыли, не был удален, следующее принудительно закроет все приложения, в которых он открыт:

fuser -k -TERM FILE

Обратите внимание, что это потенциально очень опасно, если вы не будете осторожны. 

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

почему нет команды  xdg-close 

xdg-open существует для того, чтобы такие инструменты, как файловые менеджеры или веб-браузеры, могли убедиться, что предпочтительное приложение пользователя вызывается при попытке открыть данный файл. Другими словами, он возник так, что вам не нужно просматривать все приложения в вашей системе, когда вы хотите изменить то, что используется для открытия файла, но вместо этого можете установить значения по умолчанию в одном месте, а приложения не умеют заботиться о том, какую среду рабочего стола вы используете, когда они хотят что-то открыть в другом приложении. Его можно вызвать из командной строки вручную, но на самом деле это не то, для чего он предназначен.

Автоматизация закрытия приложений, открывающих определенный файл, не совсем удобна для пользователя. Вашему веб-браузеру нет смысла закрывать программу просмотра PDF, которую вы открыли для просмотра загруженного PDF, так зачем ему нужен инструмент, который позволяет это делать? Кроме того, среда вашего рабочего стола не отслеживает, какие файлы открываются (ОС отслеживает, какие процессы открывают какие файлы), поэтому на самом деле нет простого способа реализовать это.

Что бы это ни стоило, единственная причина, xdg-open, по которой команда вообще существует, состоит в том, что она возникла до того, как DBus стал частью спецификации FreeDesktop.org, в противном случае это почти наверняка будет вызов API DBus, предоставляемый еще одним ненужным фоновым процессом.

...