提问人:Sam Kent 提问时间:9/16/2023 最后编辑:Sam Kent 更新时间:9/16/2023 访问量:92
从 linux 中的进程 ID 查找窗口 ID [duplicate]
Finding window ID from process ID in linux [duplicate]
问:
目前正在制作一个脚本/命令,我可以运行它来保存所有打开终端(gnome-terminal)的状态。我在 VM 上和他们中的很多人一起工作,VM 一直冻结或开始做奇怪的事情(无法改变这一点,由于工作原因而坚持下去)。因此,我正在尝试保存它们的状态,以便我可以重新启动VM并运行另一个命令以从上次中断的地方继续。我想像离开它们一样将终端选项卡分组在一起,所以我尝试将 PID 与窗口 ID 匹配,这样我就可以制作嵌套的 gnome-terminal 命令来正确打开所有内容。当您在谷歌上搜索“如何从进程 ID 获取窗口 ID”时,我尝试了一堆建议,但没有一个有效。
因此,我正在寻找帮助以从进程 ID 或我可以在 .bashrc 中抛出的东西中找到窗口 ID,这将使我能够跟踪窗口/选项卡。如果它是 .bashrc 中的内容,请记住,我打开多个带有多个选项卡的窗口,并且我打开或关闭它们的方式各不相同(ctrl+shift+t vs gnome-terminal cmd,ctrl+shift+q vs 窗口关闭),所以捕获信号很奇怪。
答:
0赞
Philippe
9/16/2023
#1
如果已安装,则wmctrl
wmctrl -lp
将列出所有窗口及其关联的 porcess ID。
评论
0赞
Sam Kent
9/16/2023
它列出了父 PID,在我的情况下,它们或测试用例是相同的,即使在终端的多个窗口中也是如此
0赞
Philippe
9/16/2023
您使用的是哪个终端?
0赞
F. Hauri - Give Up GitHub
9/16/2023
看看我的 getWinFromPid
函数
0赞
Sam Kent
9/17/2023
使用 bash, gnome-terminal。我正在使用 Pop_OS 所以基于 Ubuntu。getWinFromPid 也不起作用。我回应了结果,它是空的
0赞
F. Hauri - Give Up GitHub
9/18/2023
@SamKent 将创建一个 aray 变量:你可以通过 或getWinFromPid
$winIDfromPid
declare -p winIDfromPid
echo ${winIDfromPid[wantedPid]}
评论