views:

1731

answers:

2

I have a capistrano deployment recipe I've been using for some time to deploy my web app and then restart apache/nginx using the sudo command. Recently cap deploy is hanging when I try to execute these sudo commands. I see the output: "[sudo] password for " With my server name and the remote login, but this is not a secure login prompt. The cap shell is just hanging waiting for more output and does not allow me to type my password in to complete the remote sudo command.

Is there a way to fix this or a decent work around? I did not want to remove the sudo password prompt of my remote user for web restart commands.

+8  A: 

This seems to happen when connecting to CentOS machines as well. Add the following line in your capistrano deploy file:

default_run_options[:pty] = true

Also make sure to use the sudo helper instead of executing sudo in your run commands directly. For example:

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

# but
sudo "chown root:root /etc/my.cnf"
wulong
A: 

The other advice may be sound, but I found that once I updated to Capistrano 2.5.3 the problem went away. I have to make sure I stop running the default versions of tools that came with my O/S.

MikeN