It might be that some of the non-login, non-interactive dotfiles are loading your interactive, or login dotfiles. Some operating systems do this, they shouldn't. Are you deploying to somewhere exotic?
Lee Hambley -- http://lee.hambley.name/ +49 (0) 170 298 5667 On 14 January 2014 21:19, Douglas Magnenat <douglas.magne...@gmail.com>wrote: > Thanks for your answer. > Well, my '~/.bashrc' file is the standard default one. I just added an > 'echo' command in order for me to be informed when this file is launched > (That's usefull indeed !). > > Simple question : How the capistrano's community would know that > Capistran's current release 3.0.1 doesnt deactivate PTY by default when the > official doc (the link you gave) and the readme > https://github.com/capistrano/capistrano/blob/master/README.md clearly > stated that it does ? > Moreover the Changelog > https://github.com/capistrano/capistrano/blob/master/CHANGELOG.md doesn't > says anything about a change with pty default value. > > I also notice that the 'deploy_to' variable defaulted to /var/www, instead > of /var/www/#{fetch(:application)}. Maybe this is a desired working, I > don't know. > At least, I know I will never anymore rely on default settings ;o) > > This is my new deploy.rb : > require 'rvm/capistrano' > set :rvm_type, :system > > set :application, 'odpf' > set :repo_url, 'g...@github.com:mycount/mygitrepo.git' > set :branch, 'production_1.01' > set :deploy_to, '/var/www/odpf' > set :pty, false > set :scm, :git > set :format, :pretty > > namespace :deploy do > > desc 'Restart application' > task :restart do > on roles(:app), in: :sequence, wait: 5 do > # Your restart mechanism here, for example: > > # > http://www.modrails.com/documentation/Users%20guide%20Apache.html#_redeploying_restarting_the_ruby_on_rails_application > execute :touch, release_path.join('tmp/restart.txt') > end > end > > after :restart, :clear_cache do > on roles(:web), in: :groups, limit: 3, wait: 10 do > # Reference : > http://guides.rubyonrails.org/v3.2.14/command_line.html#tmp > within release_path do > execute :rake, 'tmp:cache:clear' > end > end > end > > after :finishing, 'deploy:cleanup' > end > > So I tried to set(:pty, false) with Capistrano 3.0.1. > I also tried with master branch Capitrano 3.1.0. > In both case Capistrano "*seems*" to be running a non-login interactive > connexion because my echo command still appear in the capistrano output (so > ~/.bahsrc file is read). I can't figure ot why. > > To check that I created two task based on your advice ( > http://capistranorb.com/documentation/faq/why-does-something-work-in-my-ssh-session-but-not-in-capistrano/ > ) > : > > desc "Check if ssh connexion is interactive" > task :query_interactive do > on roles(:all) do |host| > info capture("[[ $- == *i* ]] && echo 'Interactive' || echo 'Not > interactive'") + " on #{host}" > end > end > > > desc "Check if ssh connexion is Login shell" > task :query_login do > on roles(:all) do |host| > info capture("shopt -q login_shell && echo 'Login shell' || echo > 'Not login shell'") + " on #{host}" > end > end > > The result is that it is : *Not Interactive* and *Not login shell* though > ~/.bashrc is read each time ! ^^ > > douglas@bilbo:/var/www/odpf$ bundle exec cap production test_odpf: > query_login > DEBUG [92119b95] Running /usr/bin/env shopt -q login_shell && echo 'Login > shell' || echo 'Not login shell' on phisa-odpf-vd.vserver.nimag.net > DEBUG [92119b95] Command: shopt -q login_shell && echo 'Login shell' ||echo > 'Not > login shell' > DEBUG [92119b95] === Lancement de /home/rvm_admin/.bashrc === > DEBUG [92119b95] Not login shell > DEBUG [92119b95] Finished in 0.638 seconds with exit status 0 (successful > ). > INFO === Lancement de /home/rvm_admin/.bashrc === > *Not login shell on myserver.**net* > douglas@bilbo:/var/www/odpf$ > douglas@bilbo:/var/www/odpf$ bundle exec cap production test_odpf: > query_interactive > DEBUG [1275aad9] Running /usr/bin/env [[ $- == *i* ]] && echo > 'Interactive' || echo 'Not interactive' on phisa-odpf-vd.vserver.nimag.net > DEBUG [1275aad9] Command: [[ $- == *i* ]] && echo 'Interactive' || echo 'Not > interactive' > DEBUG [1275aad9] Finished in 0.617 seconds with exit status 0 (successful > ). > DEBUG [1275aad9] === Lancement de /home/rvm_admin/.bashrc === > DEBUG [1275aad9] Not interactive > DEBUG [1275aad9] Finished in 0.617 seconds with exit status 0 (successful > ). > INFO === Lancement de /home/rvm_admin/.bashrc === > *Not interactive on myserver.net* > > There is something weird going on here and I don't know why ??? > > > > > Le mardi 14 janvier 2014 12:16:47 UTC+1, Lee Hambley a écrit : > >> First up, try this: http://capistranorb.com/documentation/faq/why-does- >> something-work-in-my-ssh-session-but-not-in-capistrano/ Some of the >> content towards the end of that page is important. >> >> The output === Lancement de /home/rvm_admin/.bashrc === indicates that >> you have something loading, which shouldn't. We have always recommended >> against using a pty especially as we can't guarantee what happen in >> those scripts, and how it might break your environment in the scripting >> context. >> >> If you don't want to use a PTY (see below, for why you need the >> workaround) simply add set(:pty, false) somewhere early in your code. >> Along with the other set() lines is early enough. >> >> It looks like you are using a version of Capistrano which still defaulted >> to using a pty by default (a mistake on our side) I suggest you try >> upgrading, and using Capistrano from master until we throw out the new >> release which certainly has that corrected, although any revision after >> 3.0.1 (from the Git history) should be fine. >> >> I can't explain why your ssh session is timing out, but whatever your >> .bashrc is doing is certainly not helping. >> >> Lee Hambley >> >>> >>> -- > You received this message because you are subscribed to the Google Groups > "Capistrano" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to capistrano+unsubscr...@googlegroups.com. > To view this discussion on the web, visit > https://groups.google.com/d/msgid/capistrano/516fa71c-f42a-462b-a837-8045bfd776f6%40googlegroups.com > . > > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "Capistrano" group. To unsubscribe from this group and stop receiving emails from it, send an email to capistrano+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/capistrano/CAN_%2BVLVR02sr1vrG%2BwpGbQkS4i5t49Ljo5gbwZMGBauyim4k-w%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.