2

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

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

提前致谢

4

1 回答 1

2

requiretty您的机器已启用该选项的 sudo 设置。您可以禁用此选项,但它会造成安全漏洞;一个更好的解决方案是su --session-command改用。有关更详细的说明,请参阅此链接。

于 2012-07-30T22:16:45.330 回答