tomcat - 如何以另一个用户身份使用 sudo 通过 Fabric 启动 tomcat?

标签 tomcat fabric

我的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=Falseset -m 添加到命令中,如下所示:

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

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

关于tomcat - 如何以另一个用户身份使用 sudo 通过 Fabric 启动 tomcat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16946089/

相关文章:

java - Servlet 不执行 response.sendRedirect(addressPath); , 但确实执行没有路径的 response.sendRedirect()

java - log4j tcp appender 和 logstash 源主机

Python 使用 Fabric 连接到 EC2 实例

python - 如何显示 Fabric local() 期间遇到的错误

java - JSP生成Excel电子表格(XLS)下载

java - tomcat 7 - @GET 方法与@ApplicationPath - 状态 404 错误

path - 如何在 Fabric 中将 PATH 变量添加到 sudo

windows - windows上的Fabfile路径问题

python - 无法使 Fabric 的分离屏幕 session 示例正常工作

java - Tomcat 无法识别 MySQL .jar 库