需要使用sudo用户执行脚本文件 - 从teamcity运行

时间:2012-07-30 22:08:28

标签: java ant exec teamcity sudo

我需要使用另一个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”。

有人可以帮我解决这个错误吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

您的计算机设置了sudo并启用了requiretty选项。您可以禁用此选项,但它会创建一个安全漏洞;更好的解决方案是使用su --session-command代替。有关更详细的说明,请参阅this link