jenkins调用含有gui界面的window exe程序会一直卡住执行的问题

起因
我新建了一个jenkins构建,需要用windows下的cmd命令调用一个flash air的本地exe程序,结果在jenkins下会一直卡住不动,执行不下去。在windows下单独用cmd命令调则能顺利执行。

引自
1、 Jenkins执行批处理文件失败 http://blog.csdn.net/hwhua1986/article/details/47778131
2、 Jenkins slave远程运行windows exe无窗口问题解决方法 http://blog.csdn.net/anlegor/article/details/24329237

分析
以上两篇文章提到的问题跟我遇到的多少有点相似,基本得出两个推论:
1、jenkins是以服务的形式运行在windows机上的,而服务不能直接调用GUI的程序
2、用户权限的问题

处理
基于以上两点思考,我按照第1个参考里面的做法:
1、在windows下打开cmd程序,输入"services.msc"打开服务窗口
2、找到“jenkins”服务,然后右键->属性,选择“登录”标签页
此时,默认是勾选本地系统账户,“允许服务与桌面交互”为未勾选状态。
我试着先勾选“允许服务与桌面交互”,然后点击应用->确定,再重启"jenkins"服务,执行构建,发现并没有作用。
最后我试着勾选此账户,然后输入管理员账户和密码,然后点击应用->确定,再重启"jenkins"服务,执行构建,此时能够正常运行。

结论
根据以上的尝试基本可以得出是系统用户权限的问题,jenkins服务所在的用户权限不支持直接调用像flash air这样的exe gui程序,换成管理员账户就可以了。

你可能感兴趣的:(jenkins)