web-dev-qa-db-ja.com

「xdg-close」のようなものはありますか-xdg-openの反対ですか?

ターミナルセッションからxdg-open somefile.extを実行することもありますが、後で開いたアプリケーションまたはビューアを閉じることができます。 xdg-closeのようなものがあれば、既存のウィンドウを調べて、どのアプリケーションがsomefile.extを開いていると報告し、そのアプリケーションを閉じる/終了するかを確認したいと思っていました。

このようなものは別の名前で存在しますか?

5
einpoklum

開いたファイルが削除されていない場合、次のコマンドを実行すると、開いているすべてのアプリケーションが強制的に閉じられます。

fuser -k -TERM FILE

FILEを問題のファイルの名前に置き換えます。

注意しないと、これは潜在的にvery危険であることに注意してください。たとえば、ホームディレクトリを誤って渡した場合、システム上にある現在のすべてのログインセッション(グラフィカルとテキストの両方)が終了し、バックグラウンドプロセスのほとんどが強制終了されます。

ファイルを開いたアプリケーションを知っていると仮定すると、これを行うための安全なデスクトップ環境固有の方法が他にもありますが、ここで十分なアドバイスを提供するのに十分な知識はありません。

さて、なぜxdg-closeコマンド:

xdg-openが存在するため、ファイルマネージャーやWebブラウザーなどのツールは、ユーザーが特定のファイルを開こうとしたときにユーザーの優先アプリケーションが呼び出されることを確認できます。つまり、ファイルを開くために使用するものを変更するときにシステム上のすべてのアプリケーションを実行する必要はなく、代わりにデフォルトを1か所に設定できるように開発されたため、アプリケーションには別のアプリケーションで何かを開きたいときに使用しているデスクトップ環境を気にする。コマンドラインから手動で呼び出すことができますが、それは実際に設計されたものではありません。

自動化終了特定のファイルを開いたアプリケーションは、ユーザーフレンドリーというわけではありません。お使いのWebブラウザーは、PDFビューアーを開いてダウンロードしたPDFダウンロードしたビューアーを閉じているので、なぜそれを可能にするツールが必要なのですか?さらに、デスクトップ環境は、どのアプリケーションがどのファイルを開いているかを追跡しません(OSは、どのプロセス(1:1のアプリケーションにマップされない)がどのファイルを開いているかを追跡します)。したがって、実装する簡単な方法はありません。これも。

価値があるのは、唯一の理由xdg-openコマンドとして存在するのは、DBusがFreeDesktop.org仕様の一部になる前に作成されたためです。それ以外の場合は、ほぼ確実に、別の不要なバックグラウンドプロセスによって提供されるDBus API呼び出しになります。

2