如何使用sudo作为另一个用户使用Fabric启动tomcat?

时间:2013-06-05 17:19:08

标签: tomcat fabric

我的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)

1 个答案:

答案 0 :(得分:0)

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

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

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