我知道
xprop | awk '/PID/ {print $3}' | xargs ps
和
xprop | awk '/COMMAND/ {print $4}' | xargs which
与 deb 打包、AppImage'd 或 Snap'd 的 GUI 应用程序配合使用非常好。
但是这种方法没有为打包为 FlatPak 的应用程序提供可执行文件名。
请参见下面的示例:
$ flatpak run org.libretro.RetroArch $ xprop _NET_WM_VISIBLE_NAME(UTF8_STRING) = "RetroArch (as superuser)" WM_NAME(STRING) = "RetroArch " _NET_WM_ICON_GEOMETRY(CARDINAL) = 446, 744, 207, 24 WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW XKLAVIER_STATE(INTEGER) = 0, -180379392 _NET_WM_STATE(ATOM) = WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_FRAME_EXTENTS(CARDINAL) = 3, 3, 23, 3 _NET_WM_DESKTOP(CARDINAL) = 0 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW WM_CLIENT_MACHINE(STRING) = "norbert-UX32A" _NET_WM_PID(CARDINAL) = 2 WM_CLASS(STRING) = "retroarch", "retroarch" _NET_WM_ICON(CARDINAL) = Icon (16 x 16): ▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓ ▓▓▓ ▓ ▓▓ ▓▓▓ ▓▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓▓ ▓▓▓ ▓▓ ▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓
所以我在xprop
输出中看不到 PID 或命令相关的行。但当然它是启动的:
$ flatpak ps Instance PID Application Runtime 752290322 23857 org.libretro.RetroArch org.kde.Platform
如何获取 FlatPak 应用程序在使用时创建的窗口的 PIDxprop
或wmctrl
类似的东西?
在大多数情况下,flatpak 权限(沙盒)不允许此 AFAICT。系统的暴露程度在某种程度上是可配置的,因此您所谈论的 flatpak 可能与问题密切相关。这里有很多关于这个和其他 flatpak 相关主题的信息。
一个值得注意的部分是http://docs.flatpak.org/en/latest/sandbox-permissions.html
查找 flatpak 的可执行文件路径的另一种方法可能是检查配置文件:摘录如下。
flatpak 可以在系统范围或每个用户模式下运行。系统范围的数据位于 $prefix/var/lib/flatpak/ 中,每个用户的数据位于 $HOME/.local/share/flatpak/ 中。
除了默认安装位置之外,更多系统范围的安装可以通过配置文件 /etc/flatpak/installations.d/ 定义,该文件必须具有 .conf 扩展名,并且通常以 .conf 格式包含安装路径
Path=/location/of/installation
。有关详细信息,请参阅安装文档。