我已经花了好几个小时来解决这个问题。当 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/'
如果有任何打开的窗口,则成功,否则失败。