检查 Nautilus 文件管理器是否正在运行的最佳方法?

检查 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 文件窗口并重新运行命令(等待一两秒后),池就会消失。

这是查看 nautilus 文件管理器是否正在运行的正确方法吗?

我已将上述技术纳入答案中询问 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/'

如果有任何打开的窗口,则成功,否则失败。

相关内容