18

しばらくの間、Web アプリをデプロイするために使用してきた capistrano デプロイ レシピがあり、sudo コマンドを使用して apache/nginx を再起動します。最近、これらの sudo コマンドを実行しようとすると cap deploy がハングします。次の出力が表示されます: "[sudo] password for " 自分のサーバー名とリモート ログインが表示されますが、これは安全なログイン プロンプトではありません。cap シェルは、さらに出力を待つためにハングしているだけで、リモート sudo コマンドを完了するためにパスワードを入力することはできません。

これを修正する方法または適切な回避策はありますか? Web 再起動コマンドに対するリモート ユーザーの sudo パスワード プロンプトを削除したくありませんでした。

4

3 に答える 3

32

これは、CentOS マシンに接続するときにも発生するようです。capistrano デプロイ ファイルに次の行を追加します。

default_run_options[:pty] = true

また、実行コマンドで直接実行するのではなく、必ずsudoヘルパーを使用してください。sudo例えば:

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

# but
sudo "chown root:root /etc/my.cnf"
于 2009-01-11T00:32:18.023 に答える
2
# prevent sudo prompting for password
set :sudo_prompt, ""
于 2011-05-19T10:31:33.087 に答える
2

他のアドバイスは適切かもしれませんが、Capistrano 2.5.3 にアップデートすると、問題が解決したことがわかりました。OS に付属のツールのデフォルト バージョンの実行を停止する必要があります。

于 2009-01-14T15:18:18.530 に答える