使用 xdotool 和 Xvfb 进行自动化
我正在尝试自动从生产系统上的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论