当提示输入Ubuntu盒子的SUDO密码时,Capistrano挂起

Mik*_*keN 18 sudo capistrano

我有一段时间使用capistrano部署配方来部署我的Web应用程序,然后使用sudo命令重启apache/nginx.最近,当我尝试执行这些sudo命令时,cap部署就会挂起.我看到输出:"[sudo]密码"用我的服务器名称和远程登录,但这不是一个安全的登录提示.cap shell只是挂起等待更多输出,并且不允许我输入密码来完成远程sudo命令.

有没有办法解决这个或体面的工作?我不想删除远程用户的sudo密码提示以获取web restart命令.

wul*_*ong 32

连接到CentOS机器时似乎也会发生这种情况.在capistrano部署文件中添加以下行:

default_run_options[:pty] = true
Run Code Online (Sandbox Code Playgroud)

还要确保使用sudo帮助程序,而不是sudo直接在run命令中执行.例如:

# not
run "sudo chown root:root /etc/my.cnf"

# but
sudo "chown root:root /etc/my.cnf"
Run Code Online (Sandbox Code Playgroud)

  • `sudo`现在已被弃用,所以你应该做`run'#{sudo} chown root:root /etc/my.cnf"` (13认同)