我需要使用另一个ant脚本“build.xml”在Linux平台“runme.sh”(可以作为sudo用户执行)中执行脚本。现在我已经从teamcity执行了这个build.xml。
我有一些代码,但是在团队城市的build.xml中使用sudo调用“runme.sh”时会遇到这些代码。
在build.xml中,我有像
这样的代码 <exec dir="${installdir}" executable="/bin/sh">
<arg line="-c 'sudo ./runme.sh'"/>
<redirector inputstring="sudopassword"/>
</exec>
在团队城市我得到错误“[exec] sudo:抱歉,你必须有一个tty来运行sudo”。
有人可以帮我解决这个错误吗?
提前致谢
答案 0 :(得分:2)
您的计算机设置了sudo并启用了requiretty
选项。您可以禁用此选项,但它会创建一个安全漏洞;更好的解决方案是使用su --session-command
代替。有关更详细的说明,请参阅this link。