BLOGTIMES
2009/06/19

Capistranoのcdではまる

  ruby  capistrano 
このエントリーをはてなブックマークに追加

今日は仕事で2年ぶりくらいでcapistranoを使って複数サーバにプロジェクトをdeployできるようにしたのですが、taskを書くときにうまくcdが効かなくて参ってしまったので、家に帰ってからなんとかcdができないものかと調べて見ました。どういう現象かというと、こんな現象。

$ cap shell cap> pwd ** [out :: localhost] /home/hsur cap> cd /tmp cap> pwd ** [out :: localhost] /home/hsur

自分としては/tmpにcdしているつもりなんですが、pwdを実行するとカレントディレクトリがホームディレクトリのままになっています。

cap> cd /tmp ; pwd ** [out :: localhost] /tmp

どうも;で区切っていっぺんに実行するとうまくいく模様。capって、実行する度に相手先のサーバのshellを立ち上げて操作していると言う理解でいいんでしょうか。これまで、複雑な処理を実行するときには直接コマンドをたたかずにシェルスクリプトを絶対Pathで起動するようにしていたので、capistranoがこういう挙動を示す事に気づいていませんでした。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3087
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン