私はこの問題を解決するのに数時間を費やしました。ノーチラスファイルマネージャが実行されていない場合、ノーチラスはデスクトップのアイコンを制御するため、実行中です。
$ ps -aux | grep nautilus | grep -v grep
rick 5613 0.2 1.7 2355392 140012 pts/19 Sl+ 19:04 0:08 nautilus
したがって、Nautilus File Managerを開かずにこのコマンドを使用すると、次のようになります。
$ 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 File Managerを開き、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秒ほど待機)、プールは消えます。
ノーチラスファイルマネージャが実行されているかどうかを確認する正しい方法ですか?
上記の技術を私の答えに統合しました。Ubuntuに尋ねる可能であれば、次の点を改善したいと思います。
答え1
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/'
開いているウィンドウがあれば成功し、そうでなければ失敗します。