gpt4 book ai didi

linux - 如何正确配置 jenkins swarm 作为服务以获得正确的 scrshoots?

转载 作者:太空狗 更新时间:2023-10-29 12:40:46 24 4
gpt4 key购买 nike

我很难找出节点设置(centos+gnome+swarm 作为服务)中的问题是什么,因为它确实连接,正确运行 gui 测试但返回“损坏”(全白或“出了点问题”)截图。

在我们的 CI 环境中,我们使用 Eclipse 工具 RCPTT 构建和测试 GUI 应用程序(RED - 机器人编辑器),它可以点击 GUI 元素来验证功能。

测试在节点 Centos7 上执行,metacity+gnome+vncserver,每当 GUI 出现问题时(未找到 GUI 元素,验证与测试标准不一致),报告与屏幕截图一起创建,因此测试人员能够看看测试的应用程序发生了什么变化。

当手动配置节点(从 Jenkins 节点配置页面)或用户在节点上执行 swarm 脚本(通过 ssh)时,屏幕截图没问题。

当 swarm 作为服务执行时(节点已连接,systemctl 状态为绿色,由与手动运行相同的用户执行),除了屏幕截图关闭外,一切正常(屏幕分辨率良好,整个屏幕为白色或错误“哦不!出了点问题”enter image description here

我在作业控制台的 RCPTT、xvnc 日志中没有看到任何错误。屏幕截图损坏的根本原因是什么?

环境设置:服务定义

[Unit]
Description=Swarm client to create Jenkins slave
After=network.target
After=display-manager.service

[Service]
ExecStart=<path>/swarm_client.sh start
ExecStop=<path>/swarm_client.sh stop
Type=forking
PIDFile=<path>/slave.pid
User=root
Group=root

[Install]
WantedBy=graphical.target

swarm_client.sh

function startclient {
PUBIP=`public ip string`

java \
-jar ${SWARM_HOME}/swarm-client-3.3.jar \
-executors 1 \
-deleteExistingClients \
-disableClientsUniqueId \
-fsroot ${CLIENT_HOME} \
-labels "linux" \
-master <jenkins> \
-name node-Swarm-${PUBIP} 2>&1 > ${CLIENT_HOME}/slave.log &
PID=$!
RETCODE=$?
echo $PID > ${CLIENT_HOME}/slave.pid
exit $RETCODE
}

function stopclient {
if [ -f ${CLIENT_HOME}/slave.pid ];then
PID=`head -n1 ${CLIENT_HOME}/slave.pid`
kill $PID
rm -f ${CLIENT_HOME}/slave.pid
fi
}
SWARM_HOME=<path>/jenkins/swarm
CLIENT_HOME=<path>/jenkins
case "$1" in
start)
startclient
;;
stop)
stopclient
;;
*)
echo "Usage: systemctl {start|stop} swarm_client.service" || true
exit 1
esac

xvnc 日志:

Fri Jul  7 11:05:40 2017
vncext: VNC extension running!
vncext: Listening for VNC connections on all interface(s), port 5942
vncext: created VNC server for screen 0
gnome-session-is-accelerated: llvmpipe detected.

最佳答案

好的,在橡皮鸭 session 和一些谷歌搜索之后,似乎在设置一个依赖于用户环境属性/设置的服务时(swarm 客户端确实是一个反向远程 shell),这样的服务应该至少从导入 env 属性用户外壳。

在我的例子中,如果 swarm_client.sh 在 ssh 中工作正常但不是作为服务,它需要使用用户的 ssh/bash env 属性

#export environment of user to file
env > user.env

将此类文件添加到 [服务] 部分下的服务描述中:

EnvironmentFile=<path>/user.env

我没有调查到底缺少什么,但这对我来说已经足够了。

希望能对在Centos/RH下与swarm as a service有同样问题的人有所帮助

关于linux - 如何正确配置 jenkins swarm 作为服务以获得正确的 scrshoots?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44966022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com