使用 xdotool 和 Xvfb 进行自动化

发布于 2024-10-19 06:24:02 字数 711 浏览 1 评论 0原文

我正在尝试自动从生产系统上的 VisualVM 获取 CPU 采样器数据。但要做到这一点,我需要一种在 Xvfb 内自动执行任务的方法。

我发现 xdotool 非常适合这种自动化。 现在我有以下脚本:

Xvfb $DISPLAY -pixdepths 32 -screen 0 1280x1024x24 >/dev/null 2>&1 & XPID=$!

echo "Before twm"
#twm -display $DISPLAY &
gnome-wm &

#$VISUALVM --openpid $PID_TO_OPEN &

echo "Before gimp"
gimp &

sleep 5
xdotool search "GNU.*" windowactivate windowfocus key alt+f n

sleep 3
DISPLAY=:0.0
xwd -display :9.0 -root | xwdtopnm | pnmtopng > out.png

qiv out.png

它应该打开 Xvfb,运行 gimp,然后单击“文件”->“新建”。当我在普通 X 中执行此操作时,它会执行此操作,但是当我在 Xvfb 中执行此脚本时,它看起来不会传递键盘事件。 我用鼠标测试了它,结果是一样的,xdotool 不传递(或 Xvfb 不接受)来自鼠标的事件。

有没有人遇到过这个问题并知道解决方案?

I'm trying to automate getting CPU sampler data from visualvm on production system. But to do this I need a way to automate tasks inside Xvfb.

I found that xdotool is good for such automation.
Right now I have following script:

Xvfb $DISPLAY -pixdepths 32 -screen 0 1280x1024x24 >/dev/null 2>&1 & XPID=$!

echo "Before twm"
#twm -display $DISPLAY &
gnome-wm &

#$VISUALVM --openpid $PID_TO_OPEN &

echo "Before gimp"
gimp &

sleep 5
xdotool search "GNU.*" windowactivate windowfocus key alt+f n

sleep 3
DISPLAY=:0.0
xwd -display :9.0 -root | xwdtopnm | pnmtopng > out.png

qiv out.png

It should open Xvfb, run gimp, and click File->New. It does that when I do it in normal X, but when I execute this script in Xvfb it looks like it doesn't pass keyboard events.
I tested it with mouse and it's the same, xdotool doesn't pass (or Xvfb doesn't accept) events from mouse.

Has anyone encoundered this problem and know a solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文