web-dev-qa-db-ja.com

Nautilusファイルマネージャーが実行されているかどうかを確認する最良の方法は?

私はこの問題に何時間も取り組んできました。 nautilusファイルマネージャーが実行されていない場合、nautilusはデスクトップ上のアイコンを制御するため、実行されています。

$ ps -aux | grep nautilus | grep -v grep
rick      5613  0.2  1.7 2355392 140012 pts/19 Sl+  19:04   0:08 nautilus

したがって、nautilusファイルマネージャーを開かずにこのコマンドを使用すると、次のように表示されます。

$ ps -L -p 5613 -o pid,Nice,lwp,comm
  PID  NI   LWP COMMAND
 5613   0  5613 nautilus
 5613   0  5614 gmain
 5613   0  5615 gdbus
 5613   0  5617 dconf worker

ここで、nautilusファイルマネージャーを開き、psコマンドをやり直します。

$ nautilus

$ ps -L -p 5613 -o pid,Nice,lwp,comm
  PID  NI   LWP COMMAND
 5613   0  5613 nautilus
 5613   0  5614 gmain
 5613   0  5615 gdbus
 5613   0  5617 dconf worker
 5613   0  4788 pool

Nautilusファイルウィンドウを閉じてコマンドを再実行すると(1〜2秒待った後)、プールが消えます。

これは、nautilusファイルマネージャーが実行されているかどうかを確認する正しい方法ですか?

上記のテクニックをAsk Ubuntuの回答に組み込みました。可能であれば改善したいと思います。

2

Nautilusウィンドウが開いているかどうかを確認する最良の方法は、セッションD-Busでそれらを確認することです。

gdbus introspect --session --dest org.gnome.Nautilus \
      --object-path /org/gnome/Nautilus --recurse | awk '/^ *node /{print $2}'

これにより、開いているウィンドウがある場合、/org/gnome/Nautilus/windowの下にウィンドウエントリが表示されます。そう

gdbus introspect --session --dest org.gnome.Nautilus \
      --object-path /org/gnome/Nautilus --recurse |
grep -q '^ *node /org/gnome/Nautilus/window/'

開いているウィンドウがある場合は成功し、そうでない場合は失敗します。

3
Stephen Kitt