我的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)
答案 0 :(得分:0)
删除pty=False
添加set -m
命令,如下所示:
command= 'set -m; /data/tomcat/%s/bin/startup.sh '
set -m
打开作业控制,您可以在单独的进程组中运行进程。