我的ubuntu服务器是通过ssh key 登录服务器,用户是ubuntu。
tomcat用户是tomcat,密码是tomcat。
我想通过 Fabric 启动 tomcat。
我的方法是这样的,登录用户是ubuntu,想su用户tomcat;
但是我有一个错误 su: must be run from a terminal
如果我删除 pty=False
它将运行 startup.sh
但会在 fabric 完成后关闭。
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)
最佳答案
删除 pty=False
将 set -m
添加到命令中,如下所示:
command= 'set -m; /data/tomcat/%s/bin/startup.sh '
set -m
打开作业控制,您可以在单独的进程组中运行进程。
关于tomcat - 如何以另一个用户身份使用 sudo 通过 Fabric 启动 tomcat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16946089/