0

我的 ubuntu 服务器是通过 ssh 密钥登录的服务器,用户是 ubuntu。
tomcat用户是tomcat,密码是tomcat。
我想通过Fabric启动tomcat。而我的方法是这样的,登录用户是ubuntu,想su用户tomcat;su: must be run from a terminal
但如果我删除pty=False
它会运行startup.sh但会在织物完成后关闭,我有一个错误。

suuser(user='tomcat',pwd='tomcat',command= '/data/tomcat/%s/bin/startup.sh '%port,pty=False)

def suuser(user,pwd,command='',pty=True):

    with settings(password= "%s" % pwd,
        sudo_prefix="su  %s -c " % user,
        sudo_prompt="Password:"):
        sudo(command,pty=pty)
4

1 回答 1

0

删除pty=False添加set -m到命令,如下所示:

command= 'set -m; /data/tomcat/%s/bin/startup.sh '

set -m打开作业控制,您可以在单独的进程组中运行进程。

于 2014-07-23T06:13:58.513 回答